@arikajs/auth 0.0.4 → 0.0.6

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 (148) hide show
  1. package/README.md +175 -53
  2. package/dist/AuthContext.d.ts +24 -0
  3. package/dist/AuthContext.d.ts.map +1 -0
  4. package/dist/AuthContext.js +65 -0
  5. package/dist/AuthContext.js.map +1 -0
  6. package/dist/AuthManager.d.ts +33 -8
  7. package/dist/AuthManager.d.ts.map +1 -1
  8. package/dist/AuthManager.js +194 -51
  9. package/dist/AuthManager.js.map +1 -1
  10. package/dist/Contracts/CanResetPassword.d.ts +11 -0
  11. package/dist/Contracts/CanResetPassword.d.ts.map +1 -0
  12. package/dist/Contracts/CanResetPassword.js +3 -0
  13. package/dist/Contracts/CanResetPassword.js.map +1 -0
  14. package/dist/Contracts/CanVerifyEmail.d.ts +19 -0
  15. package/dist/Contracts/CanVerifyEmail.d.ts.map +1 -0
  16. package/dist/Contracts/CanVerifyEmail.js +3 -0
  17. package/dist/Contracts/CanVerifyEmail.js.map +1 -0
  18. package/dist/Contracts/EventDispatcher.d.ts +7 -0
  19. package/dist/Contracts/EventDispatcher.d.ts.map +1 -0
  20. package/dist/Contracts/EventDispatcher.js +3 -0
  21. package/dist/Contracts/EventDispatcher.js.map +1 -0
  22. package/dist/Contracts/PasswordBroker.d.ts +18 -0
  23. package/dist/Contracts/PasswordBroker.d.ts.map +1 -0
  24. package/dist/Contracts/PasswordBroker.js +11 -0
  25. package/dist/Contracts/PasswordBroker.js.map +1 -0
  26. package/dist/Contracts/RateLimiter.d.ts +15 -0
  27. package/dist/Contracts/RateLimiter.d.ts.map +1 -0
  28. package/dist/Contracts/RateLimiter.js +3 -0
  29. package/dist/Contracts/RateLimiter.js.map +1 -0
  30. package/dist/Contracts/UserProvider.d.ts +4 -0
  31. package/dist/Contracts/UserProvider.d.ts.map +1 -1
  32. package/dist/Guards/BasicGuard.d.ts +17 -0
  33. package/dist/Guards/BasicGuard.d.ts.map +1 -0
  34. package/dist/Guards/BasicGuard.js +59 -0
  35. package/dist/Guards/BasicGuard.js.map +1 -0
  36. package/dist/Guards/JwtGuard.d.ts +36 -0
  37. package/dist/Guards/JwtGuard.d.ts.map +1 -0
  38. package/dist/Guards/JwtGuard.js +158 -0
  39. package/dist/Guards/JwtGuard.js.map +1 -0
  40. package/dist/Guards/SessionGuard.d.ts +7 -3
  41. package/dist/Guards/SessionGuard.d.ts.map +1 -1
  42. package/dist/Guards/SessionGuard.js +104 -10
  43. package/dist/Guards/SessionGuard.js.map +1 -1
  44. package/dist/Hasher.d.ts +4 -0
  45. package/dist/Hasher.d.ts.map +1 -1
  46. package/dist/Hasher.js +6 -0
  47. package/dist/Hasher.js.map +1 -1
  48. package/dist/Middleware/Authenticate.d.ts +11 -2
  49. package/dist/Middleware/Authenticate.d.ts.map +1 -1
  50. package/dist/Middleware/Authenticate.js +42 -14
  51. package/dist/Middleware/Authenticate.js.map +1 -1
  52. package/dist/Middleware/EnsureEmailIsVerified.d.ts +8 -0
  53. package/dist/Middleware/EnsureEmailIsVerified.d.ts.map +1 -0
  54. package/dist/Middleware/EnsureEmailIsVerified.js +27 -0
  55. package/dist/Middleware/EnsureEmailIsVerified.js.map +1 -0
  56. package/dist/Passwords/PasswordResetBroker.d.ts +37 -0
  57. package/dist/Passwords/PasswordResetBroker.d.ts.map +1 -0
  58. package/dist/Passwords/PasswordResetBroker.js +128 -0
  59. package/dist/Passwords/PasswordResetBroker.js.map +1 -0
  60. package/dist/Providers/EloquentUserProvider.d.ts +30 -0
  61. package/dist/Providers/EloquentUserProvider.d.ts.map +1 -0
  62. package/dist/Providers/EloquentUserProvider.js +63 -0
  63. package/dist/Providers/EloquentUserProvider.js.map +1 -0
  64. package/dist/index.d.ts +11 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +11 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/src/AuthContext.d.ts +24 -0
  69. package/dist/src/AuthContext.d.ts.map +1 -0
  70. package/dist/src/AuthContext.js +65 -0
  71. package/dist/src/AuthContext.js.map +1 -0
  72. package/dist/src/AuthManager.d.ts +52 -0
  73. package/dist/src/AuthManager.d.ts.map +1 -0
  74. package/dist/src/AuthManager.js +255 -0
  75. package/dist/src/AuthManager.js.map +1 -0
  76. package/dist/src/Contracts/CanResetPassword.d.ts +11 -0
  77. package/dist/src/Contracts/CanResetPassword.d.ts.map +1 -0
  78. package/dist/src/Contracts/CanResetPassword.js +3 -0
  79. package/dist/src/Contracts/CanResetPassword.js.map +1 -0
  80. package/dist/src/Contracts/CanVerifyEmail.d.ts +19 -0
  81. package/dist/src/Contracts/CanVerifyEmail.d.ts.map +1 -0
  82. package/dist/src/Contracts/CanVerifyEmail.js +3 -0
  83. package/dist/src/Contracts/CanVerifyEmail.js.map +1 -0
  84. package/dist/src/Contracts/EventDispatcher.d.ts +7 -0
  85. package/dist/src/Contracts/EventDispatcher.d.ts.map +1 -0
  86. package/dist/src/Contracts/EventDispatcher.js +3 -0
  87. package/dist/src/Contracts/EventDispatcher.js.map +1 -0
  88. package/dist/src/Contracts/PasswordBroker.d.ts +18 -0
  89. package/dist/src/Contracts/PasswordBroker.d.ts.map +1 -0
  90. package/dist/src/Contracts/PasswordBroker.js +11 -0
  91. package/dist/src/Contracts/PasswordBroker.js.map +1 -0
  92. package/dist/src/Contracts/RateLimiter.d.ts +15 -0
  93. package/dist/src/Contracts/RateLimiter.d.ts.map +1 -0
  94. package/dist/src/Contracts/RateLimiter.js +3 -0
  95. package/dist/src/Contracts/RateLimiter.js.map +1 -0
  96. package/dist/src/Contracts/UserProvider.d.ts +10 -0
  97. package/dist/src/Contracts/UserProvider.d.ts.map +1 -0
  98. package/dist/src/Contracts/UserProvider.js +3 -0
  99. package/dist/src/Contracts/UserProvider.js.map +1 -0
  100. package/dist/src/Guard.d.ts +10 -0
  101. package/dist/src/Guard.d.ts.map +1 -0
  102. package/dist/src/Guard.js +3 -0
  103. package/dist/src/Guard.js.map +1 -0
  104. package/dist/src/Guards/BasicGuard.d.ts +17 -0
  105. package/dist/src/Guards/BasicGuard.d.ts.map +1 -0
  106. package/dist/src/Guards/BasicGuard.js +59 -0
  107. package/dist/src/Guards/BasicGuard.js.map +1 -0
  108. package/dist/src/Guards/JwtGuard.d.ts +36 -0
  109. package/dist/src/Guards/JwtGuard.d.ts.map +1 -0
  110. package/dist/src/Guards/JwtGuard.js +158 -0
  111. package/dist/src/Guards/JwtGuard.js.map +1 -0
  112. package/dist/src/Guards/SessionGuard.d.ts +23 -0
  113. package/dist/src/Guards/SessionGuard.d.ts.map +1 -0
  114. package/dist/src/Guards/SessionGuard.js +162 -0
  115. package/dist/src/Guards/SessionGuard.js.map +1 -0
  116. package/dist/src/Guards/TokenGuard.d.ts +17 -0
  117. package/dist/src/Guards/TokenGuard.d.ts.map +1 -0
  118. package/dist/src/Guards/TokenGuard.js +60 -0
  119. package/dist/src/Guards/TokenGuard.js.map +1 -0
  120. package/dist/src/Hasher.d.ts +15 -0
  121. package/dist/src/Hasher.d.ts.map +1 -0
  122. package/dist/src/Hasher.js +59 -0
  123. package/dist/src/Hasher.js.map +1 -0
  124. package/dist/src/Middleware/Authenticate.d.ts +24 -0
  125. package/dist/src/Middleware/Authenticate.d.ts.map +1 -0
  126. package/dist/src/Middleware/Authenticate.js +66 -0
  127. package/dist/src/Middleware/Authenticate.js.map +1 -0
  128. package/dist/src/Middleware/EnsureEmailIsVerified.d.ts +8 -0
  129. package/dist/src/Middleware/EnsureEmailIsVerified.d.ts.map +1 -0
  130. package/dist/src/Middleware/EnsureEmailIsVerified.js +27 -0
  131. package/dist/src/Middleware/EnsureEmailIsVerified.js.map +1 -0
  132. package/dist/src/Passwords/PasswordResetBroker.d.ts +37 -0
  133. package/dist/src/Passwords/PasswordResetBroker.d.ts.map +1 -0
  134. package/dist/src/Passwords/PasswordResetBroker.js +128 -0
  135. package/dist/src/Passwords/PasswordResetBroker.js.map +1 -0
  136. package/dist/src/Providers/EloquentUserProvider.d.ts +30 -0
  137. package/dist/src/Providers/EloquentUserProvider.d.ts.map +1 -0
  138. package/dist/src/Providers/EloquentUserProvider.js +63 -0
  139. package/dist/src/Providers/EloquentUserProvider.js.map +1 -0
  140. package/dist/src/index.d.ts +19 -0
  141. package/dist/src/index.d.ts.map +1 -0
  142. package/dist/src/index.js +35 -0
  143. package/dist/src/index.js.map +1 -0
  144. package/dist/tests/Auth.test.d.ts +2 -0
  145. package/dist/tests/Auth.test.d.ts.map +1 -0
  146. package/dist/tests/Auth.test.js +177 -0
  147. package/dist/tests/Auth.test.js.map +1 -0
  148. package/package.json +51 -47
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PasswordResetBroker = exports.InMemoryTokenRepository = void 0;
37
+ const crypto = __importStar(require("crypto"));
38
+ const PasswordBroker_1 = require("../Contracts/PasswordBroker");
39
+ /**
40
+ * In-memory token repository (production apps should use a database-backed one)
41
+ */
42
+ class InMemoryTokenRepository {
43
+ constructor(expiryMinutes = 60) {
44
+ this.tokens = new Map();
45
+ this.expiryMinutes = expiryMinutes;
46
+ }
47
+ async create(user) {
48
+ const rawToken = crypto.randomBytes(32).toString('hex');
49
+ const hashedToken = crypto.createHash('sha256').update(rawToken).digest('hex');
50
+ this.tokens.set(String(user.id), {
51
+ token: hashedToken,
52
+ createdAt: new Date(),
53
+ });
54
+ return rawToken; // Return un-hashed version to be sent via email
55
+ }
56
+ async exists(user, token) {
57
+ const record = this.tokens.get(String(user.id));
58
+ if (!record)
59
+ return false;
60
+ const hashedToken = crypto.createHash('sha256').update(token).digest('hex');
61
+ // Check expiry
62
+ const now = new Date();
63
+ const diffMs = now.getTime() - record.createdAt.getTime();
64
+ const diffMins = diffMs / (1000 * 60);
65
+ if (diffMins > this.expiryMinutes) {
66
+ this.tokens.delete(String(user.id));
67
+ return false;
68
+ }
69
+ return record.token === hashedToken;
70
+ }
71
+ async delete(user) {
72
+ this.tokens.delete(String(user.id));
73
+ }
74
+ async deleteExpired() {
75
+ const now = new Date();
76
+ for (const [key, record] of this.tokens.entries()) {
77
+ const diffMs = now.getTime() - record.createdAt.getTime();
78
+ const diffMins = diffMs / (1000 * 60);
79
+ if (diffMins > this.expiryMinutes) {
80
+ this.tokens.delete(key);
81
+ }
82
+ }
83
+ }
84
+ }
85
+ exports.InMemoryTokenRepository = InMemoryTokenRepository;
86
+ class PasswordResetBroker {
87
+ constructor(provider, tokens) {
88
+ this.provider = provider;
89
+ this.tokens = tokens || new InMemoryTokenRepository(60);
90
+ }
91
+ /**
92
+ * Send a password reset link to a user.
93
+ */
94
+ async sendResetLink(credentials) {
95
+ const user = await this.provider.retrieveByCredentials(credentials);
96
+ if (!user) {
97
+ return PasswordBroker_1.PasswordResetStatus.INVALID_USER;
98
+ }
99
+ const token = await this.tokens.create(user);
100
+ if (typeof user.sendPasswordResetNotification === 'function') {
101
+ await user.sendPasswordResetNotification(token);
102
+ }
103
+ return PasswordBroker_1.PasswordResetStatus.RESET_LINK_SENT;
104
+ }
105
+ /**
106
+ * Reset the password for the given token.
107
+ */
108
+ async reset(credentials, callback) {
109
+ const user = await this.provider.retrieveByCredentials(credentials);
110
+ if (!user) {
111
+ return PasswordBroker_1.PasswordResetStatus.INVALID_USER;
112
+ }
113
+ if (!credentials.token || !(await this.tokens.exists(user, credentials.token))) {
114
+ return PasswordBroker_1.PasswordResetStatus.INVALID_TOKEN;
115
+ }
116
+ await callback(user, credentials.password);
117
+ await this.tokens.delete(user);
118
+ return PasswordBroker_1.PasswordResetStatus.PASSWORD_RESET;
119
+ }
120
+ /**
121
+ * Clean up expired tokens
122
+ */
123
+ async deleteExpiredTokens() {
124
+ await this.tokens.deleteExpired();
125
+ }
126
+ }
127
+ exports.PasswordResetBroker = PasswordResetBroker;
128
+ //# sourceMappingURL=PasswordResetBroker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordResetBroker.js","sourceRoot":"","sources":["../../src/Passwords/PasswordResetBroker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { UserProvider } from '../Contracts/UserProvider';
2
+ export declare class EloquentUserProvider implements UserProvider {
3
+ private model;
4
+ constructor(model: any);
5
+ /**
6
+ * Retrieve a user by their unique identifier.
7
+ */
8
+ retrieveById(identifier: string | number): Promise<any | null>;
9
+ /**
10
+ * Retrieve a user by their unique identifier and "remember me" token.
11
+ */
12
+ retrieveByToken(identifier: string | number, token: string): Promise<any | null>;
13
+ /**
14
+ * Update the "remember me" token for the given user in storage.
15
+ */
16
+ updateRememberToken(user: any, token: string): Promise<void>;
17
+ /**
18
+ * Retrieve a user by the given credentials.
19
+ */
20
+ retrieveByCredentials(credentials: Record<string, any>): Promise<any | null>;
21
+ /**
22
+ * Validate a user against the given credentials.
23
+ */
24
+ validateCredentials(user: any, credentials: Record<string, any>): Promise<boolean>;
25
+ /**
26
+ * Rehash the user's password if required.
27
+ */
28
+ rehashPasswordIfRequired(user: any, credentials: Record<string, any>, force?: boolean): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=EloquentUserProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EloquentUserProvider.d.ts","sourceRoot":"","sources":["../../src/Providers/EloquentUserProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,qBAAa,oBAAqB,YAAW,YAAY;IACzC,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,GAAG;IAE9B;;OAEG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAI3E;;OAEG;IACU,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAK7F;;OAEG;IACU,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACU,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAkBzF;;OAEG;IACU,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/F;;OAEG;IACU,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAM5H"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EloquentUserProvider = void 0;
4
+ const Hasher_1 = require("../Hasher");
5
+ class EloquentUserProvider {
6
+ constructor(model) {
7
+ this.model = model;
8
+ }
9
+ /**
10
+ * Retrieve a user by their unique identifier.
11
+ */
12
+ async retrieveById(identifier) {
13
+ return await this.model.where('id', identifier).first();
14
+ }
15
+ /**
16
+ * Retrieve a user by their unique identifier and "remember me" token.
17
+ */
18
+ async retrieveByToken(identifier, token) {
19
+ // Implement remember token logic if needed
20
+ return null;
21
+ }
22
+ /**
23
+ * Update the "remember me" token for the given user in storage.
24
+ */
25
+ async updateRememberToken(user, token) {
26
+ // Implement remember token logic if needed
27
+ }
28
+ /**
29
+ * Retrieve a user by the given credentials.
30
+ */
31
+ async retrieveByCredentials(credentials) {
32
+ if (Object.keys(credentials).length === 0 ||
33
+ (Object.keys(credentials).length === 1 && 'password' in credentials)) {
34
+ return null;
35
+ }
36
+ let query = this.model;
37
+ for (const key in credentials) {
38
+ if (key === 'password') {
39
+ continue;
40
+ }
41
+ query = query.where(key, credentials[key]);
42
+ }
43
+ return await query.first();
44
+ }
45
+ /**
46
+ * Validate a user against the given credentials.
47
+ */
48
+ async validateCredentials(user, credentials) {
49
+ const plain = credentials.password;
50
+ return await Hasher_1.Hasher.check(plain, user.password);
51
+ }
52
+ /**
53
+ * Rehash the user's password if required.
54
+ */
55
+ async rehashPasswordIfRequired(user, credentials, force = false) {
56
+ if (Hasher_1.Hasher.needsRehash(user.password) || force) {
57
+ user.password = await Hasher_1.Hasher.make(credentials.password);
58
+ await user.save();
59
+ }
60
+ }
61
+ }
62
+ exports.EloquentUserProvider = EloquentUserProvider;
63
+ //# sourceMappingURL=EloquentUserProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EloquentUserProvider.js","sourceRoot":"","sources":["../../src/Providers/EloquentUserProvider.ts"],"names":[],"mappings":";;;AACA,sCAAmC;AAEnC,MAAa,oBAAoB;IAC7B,YAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAI,CAAC;IAEnC;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,UAA2B;QACjD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CAAC,UAA2B,EAAE,KAAa;QACnE,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAAC,IAAS,EAAE,KAAa;QACrD,2CAA2C;IAC/C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,WAAgC;QAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;YACrC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACrB,SAAS;YACb,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAAC,IAAS,EAAE,WAAgC;QACxE,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;QACnC,OAAO,MAAM,eAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,wBAAwB,CAAC,IAAS,EAAE,WAAgC,EAAE,QAAiB,KAAK;QACrG,IAAI,eAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;CACJ;AA/DD,oDA+DC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,19 @@
1
1
  export * from './Guard';
2
2
  export * from './AuthManager';
3
+ export * from './AuthContext';
3
4
  export * from './Hasher';
4
5
  export * from './Contracts/UserProvider';
6
+ export * from './Contracts/EventDispatcher';
7
+ export * from './Contracts/RateLimiter';
8
+ export * from './Contracts/CanVerifyEmail';
9
+ export * from './Contracts/CanResetPassword';
10
+ export * from './Contracts/PasswordBroker';
5
11
  export * from './Guards/SessionGuard';
6
12
  export * from './Guards/TokenGuard';
13
+ export * from './Guards/JwtGuard';
14
+ export * from './Guards/BasicGuard';
15
+ export * from './Passwords/PasswordResetBroker';
7
16
  export * from './Middleware/Authenticate';
17
+ export * from './Middleware/EnsureEmailIsVerified';
18
+ export * from './Providers/EloquentUserProvider';
8
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -16,9 +16,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Guard"), exports);
18
18
  __exportStar(require("./AuthManager"), exports);
19
+ __exportStar(require("./AuthContext"), exports);
19
20
  __exportStar(require("./Hasher"), exports);
20
21
  __exportStar(require("./Contracts/UserProvider"), exports);
22
+ __exportStar(require("./Contracts/EventDispatcher"), exports);
23
+ __exportStar(require("./Contracts/RateLimiter"), exports);
24
+ __exportStar(require("./Contracts/CanVerifyEmail"), exports);
25
+ __exportStar(require("./Contracts/CanResetPassword"), exports);
26
+ __exportStar(require("./Contracts/PasswordBroker"), exports);
21
27
  __exportStar(require("./Guards/SessionGuard"), exports);
22
28
  __exportStar(require("./Guards/TokenGuard"), exports);
29
+ __exportStar(require("./Guards/JwtGuard"), exports);
30
+ __exportStar(require("./Guards/BasicGuard"), exports);
31
+ __exportStar(require("./Passwords/PasswordResetBroker"), exports);
23
32
  __exportStar(require("./Middleware/Authenticate"), exports);
33
+ __exportStar(require("./Middleware/EnsureEmailIsVerified"), exports);
34
+ __exportStar(require("./Providers/EloquentUserProvider"), exports);
24
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,gDAA8B;AAC9B,2CAAyB;AACzB,2DAAyC;AACzC,wDAAsC;AACtC,sDAAoC;AACpC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,gDAA8B;AAC9B,gDAA8B;AAC9B,2CAAyB;AACzB,2DAAyC;AACzC,8DAA4C;AAC5C,0DAAwC;AACxC,6DAA2C;AAC3C,+DAA6C;AAC7C,6DAA2C;AAC3C,wDAAsC;AACtC,sDAAoC;AACpC,oDAAkC;AAClC,sDAAoC;AACpC,kEAAgD;AAChD,4DAA0C;AAC1C,qEAAmD;AACnD,mEAAiD"}
@@ -0,0 +1,24 @@
1
+ import { Guard } from './Guard';
2
+ import { AuthManager } from './AuthManager';
3
+ export declare class AuthContext {
4
+ private guards;
5
+ private request;
6
+ private manager;
7
+ constructor(manager: AuthManager, request: any);
8
+ guard(name?: string): Guard;
9
+ check(): Promise<boolean>;
10
+ guest(): Promise<boolean>;
11
+ user(): Promise<any>;
12
+ id(): Promise<string | number | null>;
13
+ validate(credentials: Record<string, any>): Promise<boolean>;
14
+ setUser(user: any): void;
15
+ attempt(credentials: Record<string, any>, remember?: boolean): Promise<boolean | string>;
16
+ login(user: any, remember?: boolean): Promise<void>;
17
+ logout(): Promise<void>;
18
+ sendVerification(user?: any): Promise<void>;
19
+ isLocked(credentials: Record<string, any>): Promise<boolean>;
20
+ unlockAccount(credentials: Record<string, any>): Promise<void>;
21
+ getRequest(): any;
22
+ resolve(token: any): any;
23
+ }
24
+ //# sourceMappingURL=AuthContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../src/AuthContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG;IAKvC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK;IAerB,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzB,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzB,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAIpB,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAIrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAIlB,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IAI/F,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,UAAU,IAAI,GAAG;IAIjB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAGlC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthContext = void 0;
4
+ class AuthContext {
5
+ constructor(manager, request) {
6
+ this.guards = new Map();
7
+ this.manager = manager;
8
+ this.request = request;
9
+ }
10
+ guard(name) {
11
+ name = name || this.manager.getDefaultGuard();
12
+ if (!name) {
13
+ throw new Error('No auth guard defined.');
14
+ }
15
+ if (!this.guards.has(name)) {
16
+ this.guards.set(name, this.manager.resolveGuard(name, this.request));
17
+ }
18
+ return this.guards.get(name);
19
+ }
20
+ // Proxy methods to the default guard
21
+ async check() {
22
+ return await this.guard().check();
23
+ }
24
+ async guest() {
25
+ return await this.guard().guest();
26
+ }
27
+ async user() {
28
+ return await this.guard().user();
29
+ }
30
+ async id() {
31
+ return await this.guard().id();
32
+ }
33
+ async validate(credentials) {
34
+ return await this.guard().validate(credentials);
35
+ }
36
+ setUser(user) {
37
+ this.guard().setUser(user);
38
+ }
39
+ async attempt(credentials, remember = false) {
40
+ return await this.manager.attemptForContext(this, credentials, remember);
41
+ }
42
+ async login(user, remember = false) {
43
+ return await this.manager.loginForContext(this, user, remember);
44
+ }
45
+ async logout() {
46
+ return await this.manager.logoutForContext(this);
47
+ }
48
+ async sendVerification(user) {
49
+ return await this.manager.sendVerification(this, user);
50
+ }
51
+ async isLocked(credentials) {
52
+ return await this.manager.isLocked(this, credentials);
53
+ }
54
+ async unlockAccount(credentials) {
55
+ return await this.manager.unlockAccount(this, credentials);
56
+ }
57
+ getRequest() {
58
+ return this.request;
59
+ }
60
+ resolve(token) {
61
+ return this.guard(token);
62
+ }
63
+ }
64
+ exports.AuthContext = AuthContext;
65
+ //# sourceMappingURL=AuthContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthContext.js","sourceRoot":"","sources":["../../src/AuthContext.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IAKpB,YAAY,OAAoB,EAAE,OAAY;QAJtC,WAAM,GAAuB,IAAI,GAAG,EAAE,CAAC;QAK3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,IAAa;QACtB,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAE9C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAClC,CAAC;IAED,qCAAqC;IAC9B,KAAK,CAAC,KAAK;QACd,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,EAAE;QACX,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,WAAgC;QAClD,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAEM,OAAO,CAAC,IAAS;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,WAAgC,EAAE,WAAoB,KAAK;QAC5E,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAS,EAAE,WAAoB,KAAK;QACnD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAU;QACpC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,WAAgC;QAClD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,WAAgC;QACvD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,OAAO,CAAC,KAAU;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;IACvC,CAAC;CACJ;AAhFD,kCAgFC"}
@@ -0,0 +1,52 @@
1
+ import { Guard } from './Guard';
2
+ import { UserProvider } from './Contracts/UserProvider';
3
+ import { EventDispatcher } from './Contracts/EventDispatcher';
4
+ import { RateLimiter } from './Contracts/RateLimiter';
5
+ import { AuthContext } from './AuthContext';
6
+ export declare class AuthManager {
7
+ private providers;
8
+ private eventDispatcher;
9
+ private rateLimiter;
10
+ private config;
11
+ private defaultGuard;
12
+ private als;
13
+ constructor(config: any);
14
+ setEventDispatcher(dispatcher: EventDispatcher): void;
15
+ setRateLimiter(limiter: RateLimiter): void;
16
+ registerProvider(name: string, provider: UserProvider): void;
17
+ extend(name: string, callback: (app: any) => Guard): void;
18
+ getDefaultGuard(): string;
19
+ createContext(request: any): AuthContext;
20
+ resolveGuard(name: string, request: any): Guard;
21
+ private createSessionDriver;
22
+ private createTokenDriver;
23
+ private createJwtDriver;
24
+ private createBasicDriver;
25
+ private getProvider;
26
+ shouldUse(name: string): void;
27
+ runWithContext<T>(context: AuthContext, fn: () => T | Promise<T>): T | Promise<T>;
28
+ private getContext;
29
+ guard(name?: string): Guard;
30
+ resolve(token: any): any;
31
+ check(): Promise<boolean>;
32
+ guest(): Promise<boolean>;
33
+ user(): Promise<any>;
34
+ id(): Promise<string | number | null>;
35
+ validate(credentials: Record<string, any>): Promise<boolean>;
36
+ setUser(user: any): void;
37
+ attempt(credentials: Record<string, any>, remember?: boolean): Promise<boolean | string>;
38
+ login(user: any, remember?: boolean): Promise<void>;
39
+ logout(): Promise<void>;
40
+ attemptForContext(context: AuthContext, credentials: Record<string, any>, remember?: boolean): Promise<boolean | string>;
41
+ loginForContext(context: AuthContext, user: any, remember?: boolean): Promise<void>;
42
+ logoutForContext(context: AuthContext): Promise<void>;
43
+ sendVerification(context: AuthContext, user?: any): Promise<void>;
44
+ private get lockoutThreshold();
45
+ private get lockoutDuration();
46
+ isLocked(context: AuthContext, credentials: Record<string, any>): Promise<boolean>;
47
+ unlockAccount(context: AuthContext, credentials: Record<string, any>): Promise<void>;
48
+ private getLockKey;
49
+ private fireEvent;
50
+ private getThrottleKey;
51
+ }
52
+ //# sourceMappingURL=AuthManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../../src/AuthManager.ts"],"names":[],"mappings":"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"}