@veloxts/auth 0.3.3 → 0.3.4

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.
Files changed (54) hide show
  1. package/README.md +755 -30
  2. package/dist/adapter.d.ts +710 -0
  3. package/dist/adapter.d.ts.map +1 -0
  4. package/dist/adapter.js +581 -0
  5. package/dist/adapter.js.map +1 -0
  6. package/dist/adapters/better-auth.d.ts +271 -0
  7. package/dist/adapters/better-auth.d.ts.map +1 -0
  8. package/dist/adapters/better-auth.js +341 -0
  9. package/dist/adapters/better-auth.js.map +1 -0
  10. package/dist/adapters/index.d.ts +28 -0
  11. package/dist/adapters/index.d.ts.map +1 -0
  12. package/dist/adapters/index.js +28 -0
  13. package/dist/adapters/index.js.map +1 -0
  14. package/dist/csrf.d.ts +294 -0
  15. package/dist/csrf.d.ts.map +1 -0
  16. package/dist/csrf.js +396 -0
  17. package/dist/csrf.js.map +1 -0
  18. package/dist/guards.d.ts +139 -0
  19. package/dist/guards.d.ts.map +1 -0
  20. package/dist/guards.js +247 -0
  21. package/dist/guards.js.map +1 -0
  22. package/dist/hash.d.ts +85 -0
  23. package/dist/hash.d.ts.map +1 -0
  24. package/dist/hash.js +220 -0
  25. package/dist/hash.js.map +1 -0
  26. package/dist/index.d.ts +25 -32
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +63 -36
  29. package/dist/index.js.map +1 -1
  30. package/dist/jwt.d.ts +128 -0
  31. package/dist/jwt.d.ts.map +1 -0
  32. package/dist/jwt.js +363 -0
  33. package/dist/jwt.js.map +1 -0
  34. package/dist/middleware.d.ts +87 -0
  35. package/dist/middleware.d.ts.map +1 -0
  36. package/dist/middleware.js +241 -0
  37. package/dist/middleware.js.map +1 -0
  38. package/dist/plugin.d.ts +107 -0
  39. package/dist/plugin.d.ts.map +1 -0
  40. package/dist/plugin.js +174 -0
  41. package/dist/plugin.js.map +1 -0
  42. package/dist/policies.d.ts +137 -0
  43. package/dist/policies.d.ts.map +1 -0
  44. package/dist/policies.js +240 -0
  45. package/dist/policies.js.map +1 -0
  46. package/dist/session.d.ts +494 -0
  47. package/dist/session.d.ts.map +1 -0
  48. package/dist/session.js +795 -0
  49. package/dist/session.js.map +1 -0
  50. package/dist/types.d.ts +251 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +33 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +38 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csrf.js","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Authorization guards for @veloxts/auth
3
+ * @module auth/guards
4
+ */
5
+ import type { FastifyReply, FastifyRequest } from 'fastify';
6
+ import type { AuthContext, GuardDefinition, GuardFunction, User } from './types.js';
7
+ /**
8
+ * Creates a guard definition from a check function
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const isAdmin = defineGuard({
13
+ * name: 'isAdmin',
14
+ * check: (ctx) => ctx.user?.role === 'admin',
15
+ * message: 'Admin access required',
16
+ * });
17
+ * ```
18
+ */
19
+ export declare function defineGuard<TContext = unknown>(definition: GuardDefinition<TContext>): GuardDefinition<TContext>;
20
+ /**
21
+ * Creates a simple guard from a check function
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const isActive = guard('isActive', (ctx) => ctx.user?.status === 'active');
26
+ * ```
27
+ */
28
+ export declare function guard<TContext = unknown>(name: string, check: GuardFunction<TContext>): GuardDefinition<TContext>;
29
+ /**
30
+ * Guard that requires authentication
31
+ * Rejects requests without a valid user
32
+ */
33
+ export declare const authenticated: GuardDefinition<{
34
+ auth?: AuthContext;
35
+ }>;
36
+ /**
37
+ * Guard that requires a verified email
38
+ */
39
+ export declare const emailVerified: GuardDefinition<{
40
+ user?: User;
41
+ }>;
42
+ /**
43
+ * Creates a guard that checks if user has a specific role
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const adminOnly = hasRole('admin');
48
+ * const moderatorOrAdmin = hasRole(['admin', 'moderator']);
49
+ * ```
50
+ */
51
+ export declare function hasRole(roles: string | string[]): GuardDefinition<{
52
+ user?: User & {
53
+ role?: string;
54
+ };
55
+ }>;
56
+ /**
57
+ * Creates a guard that checks if user has specific permissions
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const canEdit = hasPermission('posts.edit');
62
+ * const canManageUsers = hasPermission(['users.create', 'users.delete']);
63
+ * ```
64
+ */
65
+ export declare function hasPermission(permissions: string | string[]): GuardDefinition<{
66
+ user?: User & {
67
+ permissions?: string[];
68
+ };
69
+ }>;
70
+ /**
71
+ * Creates a guard that checks if user has ANY of the specified permissions
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const canViewOrEdit = hasAnyPermission(['posts.view', 'posts.edit']);
76
+ * ```
77
+ */
78
+ export declare function hasAnyPermission(permissions: string[]): GuardDefinition<{
79
+ user?: User & {
80
+ permissions?: string[];
81
+ };
82
+ }>;
83
+ /**
84
+ * Creates a guard that checks a custom condition on the user
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const isPremium = userCan((user) => user.subscription === 'premium');
89
+ * ```
90
+ */
91
+ export declare function userCan(check: (user: User) => boolean | Promise<boolean>, name?: string): GuardDefinition<{
92
+ user?: User;
93
+ }>;
94
+ /**
95
+ * Creates a guard that combines multiple guards with AND logic
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * const adminWithPermission = allOf([hasRole('admin'), hasPermission('users.delete')]);
100
+ * ```
101
+ */
102
+ export declare function allOf<TContext = unknown>(guards: GuardDefinition<TContext>[]): GuardDefinition<TContext>;
103
+ /**
104
+ * Creates a guard that passes if ANY of the guards pass
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const adminOrModerator = anyOf([hasRole('admin'), hasRole('moderator')]);
109
+ * ```
110
+ */
111
+ export declare function anyOf<TContext = unknown>(guards: GuardDefinition<TContext>[]): GuardDefinition<TContext>;
112
+ /**
113
+ * Creates a guard that inverts another guard
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const notAdmin = not(hasRole('admin'));
118
+ * ```
119
+ */
120
+ export declare function not<TContext = unknown>(guard: GuardDefinition<TContext>): GuardDefinition<TContext>;
121
+ /**
122
+ * Executes a guard and returns the result
123
+ */
124
+ export declare function executeGuard<TContext>(guard: GuardDefinition<TContext>, ctx: TContext, request: FastifyRequest, reply: FastifyReply): Promise<{
125
+ passed: boolean;
126
+ message?: string;
127
+ statusCode?: number;
128
+ }>;
129
+ /**
130
+ * Executes multiple guards in sequence
131
+ * Returns on first failure
132
+ */
133
+ export declare function executeGuards<TContext>(guards: GuardDefinition<TContext>[], ctx: TContext, request: FastifyRequest, reply: FastifyReply): Promise<{
134
+ passed: boolean;
135
+ failedGuard?: string;
136
+ message?: string;
137
+ statusCode?: number;
138
+ }>;
139
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
package/dist/guards.js ADDED
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Authorization guards for @veloxts/auth
3
+ * @module auth/guards
4
+ */
5
+ // ============================================================================
6
+ // Guard Factory
7
+ // ============================================================================
8
+ /**
9
+ * Creates a guard definition from a check function
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const isAdmin = defineGuard({
14
+ * name: 'isAdmin',
15
+ * check: (ctx) => ctx.user?.role === 'admin',
16
+ * message: 'Admin access required',
17
+ * });
18
+ * ```
19
+ */
20
+ export function defineGuard(definition) {
21
+ return {
22
+ statusCode: 403,
23
+ ...definition,
24
+ };
25
+ }
26
+ /**
27
+ * Creates a simple guard from a check function
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const isActive = guard('isActive', (ctx) => ctx.user?.status === 'active');
32
+ * ```
33
+ */
34
+ export function guard(name, check) {
35
+ return defineGuard({ name, check });
36
+ }
37
+ // ============================================================================
38
+ // Built-in Guards
39
+ // ============================================================================
40
+ /**
41
+ * Guard that requires authentication
42
+ * Rejects requests without a valid user
43
+ */
44
+ export const authenticated = defineGuard({
45
+ name: 'authenticated',
46
+ check: (ctx) => ctx.auth?.isAuthenticated === true,
47
+ message: 'Authentication required',
48
+ statusCode: 401,
49
+ });
50
+ /**
51
+ * Guard that requires a verified email
52
+ */
53
+ export const emailVerified = defineGuard({
54
+ name: 'emailVerified',
55
+ check: (ctx) => ctx.user?.emailVerified === true,
56
+ message: 'Email verification required',
57
+ statusCode: 403,
58
+ });
59
+ /**
60
+ * Creates a guard that checks if user has a specific role
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const adminOnly = hasRole('admin');
65
+ * const moderatorOrAdmin = hasRole(['admin', 'moderator']);
66
+ * ```
67
+ */
68
+ export function hasRole(roles) {
69
+ const roleArray = Array.isArray(roles) ? roles : [roles];
70
+ return defineGuard({
71
+ name: `hasRole:${roleArray.join(',')}`,
72
+ check: (ctx) => {
73
+ const userRole = ctx.user?.role;
74
+ return typeof userRole === 'string' && roleArray.includes(userRole);
75
+ },
76
+ message: `Required role: ${roleArray.join(' or ')}`,
77
+ });
78
+ }
79
+ /**
80
+ * Creates a guard that checks if user has specific permissions
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const canEdit = hasPermission('posts.edit');
85
+ * const canManageUsers = hasPermission(['users.create', 'users.delete']);
86
+ * ```
87
+ */
88
+ export function hasPermission(permissions) {
89
+ const required = Array.isArray(permissions) ? permissions : [permissions];
90
+ return defineGuard({
91
+ name: `hasPermission:${required.join(',')}`,
92
+ check: (ctx) => {
93
+ const userPermissions = ctx.user?.permissions;
94
+ if (!Array.isArray(userPermissions)) {
95
+ return false;
96
+ }
97
+ return required.every((p) => userPermissions.includes(p));
98
+ },
99
+ message: `Required permissions: ${required.join(', ')}`,
100
+ });
101
+ }
102
+ /**
103
+ * Creates a guard that checks if user has ANY of the specified permissions
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const canViewOrEdit = hasAnyPermission(['posts.view', 'posts.edit']);
108
+ * ```
109
+ */
110
+ export function hasAnyPermission(permissions) {
111
+ return defineGuard({
112
+ name: `hasAnyPermission:${permissions.join(',')}`,
113
+ check: (ctx) => {
114
+ const userPermissions = ctx.user?.permissions;
115
+ if (!Array.isArray(userPermissions)) {
116
+ return false;
117
+ }
118
+ return permissions.some((p) => userPermissions.includes(p));
119
+ },
120
+ message: `Required one of: ${permissions.join(', ')}`,
121
+ });
122
+ }
123
+ /**
124
+ * Creates a guard that checks a custom condition on the user
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const isPremium = userCan((user) => user.subscription === 'premium');
129
+ * ```
130
+ */
131
+ export function userCan(check, name = 'custom') {
132
+ return defineGuard({
133
+ name: `userCan:${name}`,
134
+ check: async (ctx) => {
135
+ if (!ctx.user) {
136
+ return false;
137
+ }
138
+ return check(ctx.user);
139
+ },
140
+ });
141
+ }
142
+ /**
143
+ * Creates a guard that combines multiple guards with AND logic
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const adminWithPermission = allOf([hasRole('admin'), hasPermission('users.delete')]);
148
+ * ```
149
+ */
150
+ export function allOf(guards) {
151
+ return defineGuard({
152
+ name: `allOf:${guards.map((g) => g.name).join(',')}`,
153
+ check: async (ctx, request, reply) => {
154
+ for (const guard of guards) {
155
+ const result = await guard.check(ctx, request, reply);
156
+ if (!result) {
157
+ return false;
158
+ }
159
+ }
160
+ return true;
161
+ },
162
+ message: `All conditions required: ${guards.map((g) => g.name).join(', ')}`,
163
+ });
164
+ }
165
+ /**
166
+ * Creates a guard that passes if ANY of the guards pass
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const adminOrModerator = anyOf([hasRole('admin'), hasRole('moderator')]);
171
+ * ```
172
+ */
173
+ export function anyOf(guards) {
174
+ return defineGuard({
175
+ name: `anyOf:${guards.map((g) => g.name).join(',')}`,
176
+ check: async (ctx, request, reply) => {
177
+ for (const guard of guards) {
178
+ const result = await guard.check(ctx, request, reply);
179
+ if (result) {
180
+ return true;
181
+ }
182
+ }
183
+ return false;
184
+ },
185
+ message: `One of required: ${guards.map((g) => g.name).join(', ')}`,
186
+ });
187
+ }
188
+ /**
189
+ * Creates a guard that inverts another guard
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * const notAdmin = not(hasRole('admin'));
194
+ * ```
195
+ */
196
+ export function not(guard) {
197
+ return defineGuard({
198
+ name: `not:${guard.name}`,
199
+ check: async (ctx, request, reply) => {
200
+ const result = await guard.check(ctx, request, reply);
201
+ return !result;
202
+ },
203
+ message: `Condition must not be met: ${guard.name}`,
204
+ });
205
+ }
206
+ // ============================================================================
207
+ // Guard Execution
208
+ // ============================================================================
209
+ /**
210
+ * Executes a guard and returns the result
211
+ */
212
+ export async function executeGuard(guard, ctx, request, reply) {
213
+ try {
214
+ const passed = await guard.check(ctx, request, reply);
215
+ return {
216
+ passed,
217
+ message: passed ? undefined : guard.message,
218
+ statusCode: passed ? undefined : guard.statusCode,
219
+ };
220
+ }
221
+ catch (error) {
222
+ return {
223
+ passed: false,
224
+ message: error instanceof Error ? error.message : 'Guard check failed',
225
+ statusCode: 500,
226
+ };
227
+ }
228
+ }
229
+ /**
230
+ * Executes multiple guards in sequence
231
+ * Returns on first failure
232
+ */
233
+ export async function executeGuards(guards, ctx, request, reply) {
234
+ for (const guard of guards) {
235
+ const result = await executeGuard(guard, ctx, request, reply);
236
+ if (!result.passed) {
237
+ return {
238
+ passed: false,
239
+ failedGuard: guard.name,
240
+ message: result.message,
241
+ statusCode: result.statusCode,
242
+ };
243
+ }
244
+ }
245
+ return { passed: true };
246
+ }
247
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
package/dist/hash.d.ts ADDED
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Password hashing utilities for @veloxts/auth
3
+ * @module auth/hash
4
+ */
5
+ import type { HashConfig } from './types.js';
6
+ /**
7
+ * Password hasher with configurable algorithms
8
+ *
9
+ * Supports bcrypt and argon2 algorithms. Falls back to scrypt-based
10
+ * implementation when native modules are not available.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const hasher = new PasswordHasher({ algorithm: 'bcrypt', bcryptRounds: 12 });
15
+ *
16
+ * // Hash a password
17
+ * const hash = await hasher.hash('mypassword123');
18
+ *
19
+ * // Verify a password
20
+ * const isValid = await hasher.verify('mypassword123', hash);
21
+ * ```
22
+ */
23
+ export declare class PasswordHasher {
24
+ private readonly config;
25
+ private bcrypt;
26
+ private argon2;
27
+ constructor(config?: HashConfig);
28
+ /**
29
+ * Lazily load bcrypt module
30
+ */
31
+ private loadBcrypt;
32
+ /**
33
+ * Lazily load argon2 module
34
+ */
35
+ private loadArgon2;
36
+ /**
37
+ * Hash a password using the configured algorithm
38
+ */
39
+ hash(password: string): Promise<string>;
40
+ /**
41
+ * Verify a password against a hash
42
+ */
43
+ verify(password: string, hash: string): Promise<boolean>;
44
+ /**
45
+ * Hash using bcrypt
46
+ */
47
+ private hashWithBcrypt;
48
+ /**
49
+ * Verify using bcrypt
50
+ */
51
+ private verifyWithBcrypt;
52
+ /**
53
+ * Hash using argon2
54
+ */
55
+ private hashWithArgon2;
56
+ /**
57
+ * Verify using argon2
58
+ */
59
+ private verifyWithArgon2;
60
+ /**
61
+ * Hash using Node.js built-in scrypt (fallback)
62
+ */
63
+ private hashWithScrypt;
64
+ /**
65
+ * Verify using scrypt
66
+ */
67
+ private verifyWithScrypt;
68
+ /**
69
+ * Check if a hash needs rehashing (algorithm or cost changed)
70
+ */
71
+ needsRehash(hash: string): boolean;
72
+ }
73
+ /**
74
+ * Creates a new password hasher instance
75
+ */
76
+ export declare function createPasswordHasher(config?: HashConfig): PasswordHasher;
77
+ /**
78
+ * Hash a password using the default hasher
79
+ */
80
+ export declare function hashPassword(password: string): Promise<string>;
81
+ /**
82
+ * Verify a password using the default hasher
83
+ */
84
+ export declare function verifyPassword(password: string, hash: string): Promise<boolean>;
85
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiB7C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,MAAM,CAAwC;gBAE1C,MAAM,GAAE,UAAe;IAUnC;;OAEG;YACW,UAAU;IAaxB;;OAEG;YACW,UAAU;IAWxB;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7C;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe9D;;OAEG;YACW,cAAc;IAc5B;;OAEG;YACW,gBAAgB;IAK9B;;OAEG;YACW,cAAc;IAmB5B;;OAEG;YACW,gBAAgB;IAK9B;;OAEG;YACW,cAAc;IAM5B;;OAEG;YACW,gBAAgB;IAa9B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAgBnC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,CAExE;AAOD;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKrF"}