@rudderjs/auth 0.2.0 → 0.2.1

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 (45) hide show
  1. package/README.md +63 -21
  2. package/boost/skills/auth-setup/SKILL.md +273 -0
  3. package/dist/auth-manager.d.ts +31 -1
  4. package/dist/auth-manager.d.ts.map +1 -1
  5. package/dist/auth-manager.js +53 -12
  6. package/dist/auth-manager.js.map +1 -1
  7. package/dist/gate-observers.d.ts +37 -0
  8. package/dist/gate-observers.d.ts.map +1 -0
  9. package/dist/gate-observers.js +38 -0
  10. package/dist/gate-observers.js.map +1 -0
  11. package/dist/gate.d.ts +3 -0
  12. package/dist/gate.d.ts.map +1 -1
  13. package/dist/gate.js +72 -15
  14. package/dist/gate.js.map +1 -1
  15. package/dist/index.d.ts +13 -7
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +53 -39
  18. package/dist/index.js.map +1 -1
  19. package/dist/require-guest.d.ts +10 -0
  20. package/dist/require-guest.d.ts.map +1 -0
  21. package/dist/require-guest.js +25 -0
  22. package/dist/require-guest.js.map +1 -0
  23. package/dist/routes.d.ts +43 -0
  24. package/dist/routes.d.ts.map +1 -0
  25. package/dist/routes.js +43 -0
  26. package/dist/routes.js.map +1 -0
  27. package/package.json +38 -8
  28. package/{pages/react/forgot-password/+Page.tsx → views/react/ForgotPassword.tsx} +17 -4
  29. package/{pages/react/login/+Page.tsx → views/react/Login.tsx} +25 -7
  30. package/{pages/react/register/+Page.tsx → views/react/Register.tsx} +17 -4
  31. package/{pages/react/reset-password/+Page.tsx → views/react/ResetPassword.tsx} +20 -5
  32. package/pages/react/login/+guard.ts +0 -15
  33. package/pages/react/register/+guard.ts +0 -15
  34. package/pages/solid/forgot-password/+Page.tsx +0 -62
  35. package/pages/solid/login/+Page.tsx +0 -66
  36. package/pages/solid/login/+guard.ts +0 -15
  37. package/pages/solid/register/+Page.tsx +0 -72
  38. package/pages/solid/register/+guard.ts +0 -15
  39. package/pages/solid/reset-password/+Page.tsx +0 -94
  40. package/pages/vue/forgot-password/+Page.vue +0 -60
  41. package/pages/vue/login/+Page.vue +0 -63
  42. package/pages/vue/login/+guard.ts +0 -15
  43. package/pages/vue/register/+Page.vue +0 -68
  44. package/pages/vue/register/+guard.ts +0 -15
  45. package/pages/vue/reset-password/+Page.vue +0 -93
package/dist/gate.js CHANGED
@@ -1,4 +1,12 @@
1
1
  import { currentAuth } from './auth-manager.js';
2
+ // Lazy accessor — reads the process-wide singleton set by gate-observers.ts.
3
+ let _gateObs;
4
+ function _getGateObservers() {
5
+ if (_gateObs === undefined) {
6
+ _gateObs = globalThis['__rudderjs_gate_observers__'] ?? null;
7
+ }
8
+ return _gateObs;
9
+ }
2
10
  // ─── Policy Base Class ────────────────────────────────────
3
11
  export class Policy {
4
12
  }
@@ -20,9 +28,15 @@ export class Gate {
20
28
  // ── Check abilities ───────────────────────────────────
21
29
  static async allows(ability, ...args) {
22
30
  const user = await this.resolveUser();
23
- if (!user)
31
+ if (!user) {
32
+ this._emitObservation(ability, null, { allowed: false, resolvedVia: 'default' }, args, 0);
24
33
  return false;
25
- return this._check(user, ability, ...args);
34
+ }
35
+ const start = performance.now();
36
+ const result = await this._check(user, ability, ...args);
37
+ const duration = Math.round(performance.now() - start);
38
+ this._emitObservation(ability, user, result, args, duration);
39
+ return result.allowed;
26
40
  }
27
41
  static async denies(ability, ...args) {
28
42
  return !(await this.allows(ability, ...args));
@@ -54,23 +68,24 @@ export class Gate {
54
68
  for (const cb of this._beforeCallbacks) {
55
69
  const result = await cb(user, ability);
56
70
  if (result === true)
57
- return true;
71
+ return { allowed: true, resolvedVia: 'before' };
58
72
  if (result === false)
59
- return false;
73
+ return { allowed: false, resolvedVia: 'before' };
60
74
  }
61
75
  // Check if the first arg is a model instance with a registered policy
62
76
  const model = args[0];
63
77
  if (model && typeof model === 'object') {
64
78
  const policyClass = this.findPolicy(model);
65
79
  if (policyClass) {
66
- return this.callPolicy(policyClass, user, ability, ...args);
80
+ const allowed = await this.callPolicy(policyClass, user, ability, ...args);
81
+ return { allowed, resolvedVia: 'policy', policy: policyClass.name };
67
82
  }
68
83
  }
69
84
  // Fall back to defined abilities
70
85
  const callback = this._abilities.get(ability);
71
86
  if (!callback)
72
- return false;
73
- return callback(user, ...args);
87
+ return { allowed: false, resolvedVia: 'default' };
88
+ return { allowed: await callback(user, ...args), resolvedVia: 'ability' };
74
89
  }
75
90
  static findPolicy(model) {
76
91
  if (!model || typeof model !== 'object')
@@ -105,6 +120,25 @@ export class Gate {
105
120
  return false;
106
121
  return method.call(policy, user, ...args);
107
122
  }
123
+ /** Emit an observation event to the gate observer registry (if present). */
124
+ static _emitObservation(ability, user, result, args, duration) {
125
+ const obs = _getGateObservers();
126
+ if (!obs)
127
+ return;
128
+ const model = args[0];
129
+ const modelName = model && typeof model === 'object' && 'constructor' in model
130
+ ? model.constructor.name
131
+ : undefined;
132
+ obs.emit({
133
+ ability,
134
+ userId: user ? user.getAuthIdentifier() : null,
135
+ allowed: result.allowed,
136
+ resolvedVia: result.resolvedVia,
137
+ policy: result.policy,
138
+ model: modelName,
139
+ duration,
140
+ });
141
+ }
108
142
  /** @internal — reset all definitions. Used for testing. */
109
143
  static reset() {
110
144
  this._abilities.clear();
@@ -125,13 +159,35 @@ class GateForUser {
125
159
  this.beforeCallbacks = beforeCallbacks;
126
160
  }
127
161
  async allows(ability, ...args) {
162
+ const start = performance.now();
163
+ const result = await this._check(ability, ...args);
164
+ const duration = Math.round(performance.now() - start);
165
+ const obs = _getGateObservers();
166
+ if (obs) {
167
+ const model = args[0];
168
+ const modelName = model && typeof model === 'object' && 'constructor' in model
169
+ ? model.constructor.name
170
+ : undefined;
171
+ obs.emit({
172
+ ability,
173
+ userId: this.user.getAuthIdentifier(),
174
+ allowed: result.allowed,
175
+ resolvedVia: result.resolvedVia,
176
+ policy: result.policy,
177
+ model: modelName,
178
+ duration,
179
+ });
180
+ }
181
+ return result.allowed;
182
+ }
183
+ async _check(ability, ...args) {
128
184
  // Before callbacks
129
185
  for (const cb of this.beforeCallbacks) {
130
186
  const result = await cb(this.user, ability);
131
187
  if (result === true)
132
- return true;
188
+ return { allowed: true, resolvedVia: 'before' };
133
189
  if (result === false)
134
- return false;
190
+ return { allowed: false, resolvedVia: 'before' };
135
191
  }
136
192
  // Policy check
137
193
  const model = args[0];
@@ -144,22 +200,23 @@ class GateForUser {
144
200
  if (policy.before) {
145
201
  const result = await policy.before(this.user);
146
202
  if (result === true)
147
- return true;
203
+ return { allowed: true, resolvedVia: 'before' };
148
204
  if (result === false)
149
- return false;
205
+ return { allowed: false, resolvedVia: 'before' };
150
206
  }
151
207
  const method = policy[ability];
152
208
  if (typeof method !== 'function')
153
- return false;
154
- return method.call(policy, this.user, ...args);
209
+ return { allowed: false, resolvedVia: 'default' };
210
+ const allowed = await method.call(policy, this.user, ...args);
211
+ return { allowed, resolvedVia: 'policy', policy: PolicyCtor.name };
155
212
  }
156
213
  }
157
214
  }
158
215
  // Ability check
159
216
  const callback = this.abilities.get(ability);
160
217
  if (!callback)
161
- return false;
162
- return callback(this.user, ...args);
218
+ return { allowed: false, resolvedVia: 'default' };
219
+ return { allowed: await callback(this.user, ...args), resolvedVia: 'ability' };
163
220
  }
164
221
  async denies(ability, ...args) {
165
222
  return !(await this.allows(ability, ...args));
package/dist/gate.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,19 +1,19 @@
1
- import { ServiceProvider, type Application } from '@rudderjs/core';
1
+ import { ServiceProvider } from '@rudderjs/core';
2
2
  import type { MiddlewareHandler } from '@rudderjs/contracts';
3
- import { type AuthConfig } from './auth-manager.js';
4
3
  import type { AuthUser } from './contracts.js';
5
4
  declare module '@rudderjs/contracts' {
6
5
  interface AppRequest {
7
6
  user?: AuthUser;
8
7
  }
9
8
  }
10
- export { Auth } from './auth-manager.js';
11
- export { AuthManager, runWithAuth } from './auth-manager.js';
9
+ export { Auth, auth } from './auth-manager.js';
10
+ export { AuthManager, runWithAuth, currentAuth } from './auth-manager.js';
12
11
  export { SessionGuard } from './session-guard.js';
13
12
  export { EloquentUserProvider, toAuthenticatable } from './providers.js';
14
13
  export { Gate, Policy, AuthorizationError } from './gate.js';
15
14
  export { PasswordBroker, MemoryTokenRepository } from './password-reset.js';
16
15
  export { EnsureEmailIsVerified, verificationUrl, handleEmailVerification, mustVerifyEmail } from './verification.js';
16
+ export { RequireGuest } from './require-guest.js';
17
17
  export type { Authenticatable, AuthUser, Guard, UserProvider } from './contracts.js';
18
18
  export type { MustVerifyEmail } from './verification.js';
19
19
  export type { TokenRepository, PasswordResetStatus, PasswordResetConfig } from './password-reset.js';
@@ -34,8 +34,14 @@ export declare function RequireAuth(guardName?: string): MiddlewareHandler;
34
34
  * Requires: @rudderjs/session (session middleware), @rudderjs/hash
35
35
  *
36
36
  * Usage in bootstrap/providers.ts:
37
- * import { auth } from '@rudderjs/auth'
38
- * export default [session(configs.session), hash(configs.hash), auth(configs.auth), ...]
37
+ * import { authProvider } from '@rudderjs/auth'
38
+ * export default [session(configs.session), hash(configs.hash), authProvider(configs.auth), ...]
39
+ *
40
+ * Note: the lowercase `auth()` helper is a different export — it returns the
41
+ * current request's AuthManager (Laravel's `auth()->user()` ergonomics).
39
42
  */
40
- export declare function auth(config: AuthConfig): new (app: Application) => ServiceProvider;
43
+ export declare class AuthProvider extends ServiceProvider {
44
+ register(): void;
45
+ boot(): Promise<void>;
46
+ }
41
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAO,MAAM,gBAAgB,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAK9C,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,UAAU;QAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;KAChB;CACF;AAID,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEpH,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpF,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACpG,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACxF,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAsBtD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAiBpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAoBjE;AAID;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,EAAE,WAAW,KAAK,eAAe,CA2ClF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAK9C,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,UAAU;QAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;KAChB;CACF;AAID,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACpH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpF,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACpG,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACxF,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAsBtD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAiBpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAoBjE;AAID;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAC/C,QAAQ,IAAI,IAAI;IAgBV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAoC5B"}
package/dist/index.js CHANGED
@@ -1,13 +1,14 @@
1
- import { ServiceProvider, app } from '@rudderjs/core';
1
+ import { ServiceProvider, app, config } from '@rudderjs/core';
2
2
  import { AuthManager, Auth, runWithAuth } from './auth-manager.js';
3
3
  // ─── Re-exports ───────────────────────────────────────────
4
- export { Auth } from './auth-manager.js';
5
- export { AuthManager, runWithAuth } from './auth-manager.js';
4
+ export { Auth, auth } from './auth-manager.js';
5
+ export { AuthManager, runWithAuth, currentAuth } from './auth-manager.js';
6
6
  export { SessionGuard } from './session-guard.js';
7
7
  export { EloquentUserProvider, toAuthenticatable } from './providers.js';
8
8
  export { Gate, Policy, AuthorizationError } from './gate.js';
9
9
  export { PasswordBroker, MemoryTokenRepository } from './password-reset.js';
10
10
  export { EnsureEmailIsVerified, verificationUrl, handleEmailVerification, mustVerifyEmail } from './verification.js';
11
+ export { RequireGuest } from './require-guest.js';
11
12
  // ─── Helpers ──────────────────────────────────────────────
12
13
  function userToPlain(user) {
13
14
  const u = user;
@@ -79,45 +80,58 @@ export function RequireAuth(guardName) {
79
80
  * Requires: @rudderjs/session (session middleware), @rudderjs/hash
80
81
  *
81
82
  * Usage in bootstrap/providers.ts:
82
- * import { auth } from '@rudderjs/auth'
83
- * export default [session(configs.session), hash(configs.hash), auth(configs.auth), ...]
83
+ * import { authProvider } from '@rudderjs/auth'
84
+ * export default [session(configs.session), hash(configs.hash), authProvider(configs.auth), ...]
85
+ *
86
+ * Note: the lowercase `auth()` helper is a different export — it returns the
87
+ * current request's AuthManager (Laravel's `auth()->user()` ergonomics).
84
88
  */
85
- export function auth(config) {
86
- class AuthServiceProvider extends ServiceProvider {
87
- register() {
88
- // Auth pages (framework-specific)
89
- this.publishes({ from: new URL(/* @vite-ignore */ '../pages/react', import.meta.url).pathname, to: 'pages/(auth)', tag: 'auth-pages' });
90
- this.publishes({ from: new URL(/* @vite-ignore */ '../pages/react', import.meta.url).pathname, to: 'pages/(auth)', tag: 'auth-pages-react' });
91
- this.publishes({ from: new URL(/* @vite-ignore */ '../pages/vue', import.meta.url).pathname, to: 'pages/(auth)', tag: 'auth-pages-vue' });
92
- this.publishes({ from: new URL(/* @vite-ignore */ '../pages/solid', import.meta.url).pathname, to: 'pages/(auth)', tag: 'auth-pages-solid' });
93
- // Auth schema (ORM + driver-specific)
94
- const schemaDir = new URL(/* @vite-ignore */ '../schema', import.meta.url).pathname;
95
- this.publishes([
96
- { from: `${schemaDir}/auth.prisma`, to: 'prisma/schema', tag: 'auth-schema', orm: 'prisma' },
97
- { from: `${schemaDir}/auth.drizzle.sqlite.ts`, to: 'database/schema', tag: 'auth-schema', orm: 'drizzle', driver: 'sqlite' },
98
- { from: `${schemaDir}/auth.drizzle.pg.ts`, to: 'database/schema', tag: 'auth-schema', orm: 'drizzle', driver: 'postgresql' },
99
- { from: `${schemaDir}/auth.drizzle.mysql.ts`, to: 'database/schema', tag: 'auth-schema', orm: 'drizzle', driver: 'mysql' },
100
- ]);
89
+ export class AuthProvider extends ServiceProvider {
90
+ register() {
91
+ // Auth views — vendored into the consumer's `app/Views/Auth/` directory.
92
+ // Consumers then wire routes via `registerAuthRoutes(Route)` from `@rudderjs/auth/routes`.
93
+ this.publishes({ from: new URL(/* @vite-ignore */ '../views/react', import.meta.url).pathname, to: 'app/Views/Auth', tag: 'auth-views' });
94
+ this.publishes({ from: new URL(/* @vite-ignore */ '../views/react', import.meta.url).pathname, to: 'app/Views/Auth', tag: 'auth-views-react' });
95
+ // Auth schema (ORM + driver-specific)
96
+ const schemaDir = new URL(/* @vite-ignore */ '../schema', import.meta.url).pathname;
97
+ this.publishes([
98
+ { from: `${schemaDir}/auth.prisma`, to: 'prisma/schema', tag: 'auth-schema', orm: 'prisma' },
99
+ { from: `${schemaDir}/auth.drizzle.sqlite.ts`, to: 'database/schema', tag: 'auth-schema', orm: 'drizzle', driver: 'sqlite' },
100
+ { from: `${schemaDir}/auth.drizzle.pg.ts`, to: 'database/schema', tag: 'auth-schema', orm: 'drizzle', driver: 'postgresql' },
101
+ { from: `${schemaDir}/auth.drizzle.mysql.ts`, to: 'database/schema', tag: 'auth-schema', orm: 'drizzle', driver: 'mysql' },
102
+ ]);
103
+ }
104
+ async boot() {
105
+ const cfg = config('auth');
106
+ // Resolve Hash.check from DI
107
+ let hashCheck;
108
+ try {
109
+ const hashDriver = this.app.make('hash');
110
+ hashCheck = (plain, hashed) => hashDriver.check(plain, hashed);
101
111
  }
102
- async boot() {
103
- // Resolve Hash.check from DI
104
- let hashCheck;
105
- try {
106
- const hashDriver = this.app.make('hash');
107
- hashCheck = (plain, hashed) => hashDriver.check(plain, hashed);
108
- }
109
- catch {
110
- throw new Error('[RudderJS Auth] No hash driver found. Register hash() provider before auth().');
111
- }
112
- // Resolve session facade bound by @rudderjs/session as 'session.facade'
113
- const getSession = () => {
114
- return this.app.make('session.facade');
115
- };
116
- const manager = new AuthManager(config, hashCheck, getSession);
117
- this.app.instance('auth.manager', manager);
118
- this.app.instance('auth', Auth);
112
+ catch {
113
+ throw new Error('[RudderJS Auth] No hash driver found. Register HashProvider before AuthProvider.');
114
+ }
115
+ // Resolve session facade — bound by @rudderjs/session as 'session.facade'
116
+ const getSession = () => {
117
+ return this.app.make('session.facade');
118
+ };
119
+ const manager = new AuthManager(cfg, hashCheck, getSession);
120
+ this.app.instance('auth.manager', manager);
121
+ this.app.instance('auth', Auth);
122
+ // Install AuthMiddleware as a global router middleware so every request
123
+ // runs inside `runWithAuth(manager, …)`. User code can then call
124
+ // `auth().user()`, `Auth.user()`, or read `req.user` without manual
125
+ // context wrapping — matching Laravel's `auth()->user()` ergonomics.
126
+ try {
127
+ const { router } = await import('@rudderjs/router');
128
+ router.use(AuthMiddleware());
129
+ }
130
+ catch {
131
+ // Router peer not installed — skip global registration. Callers can
132
+ // still wrap manually with runWithAuth if they're running in a
133
+ // non-HTTP context (CLI, worker).
119
134
  }
120
135
  }
121
- return AuthServiceProvider;
122
136
  }
123
137
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { MiddlewareHandler } from '@rudderjs/contracts';
2
+ /**
3
+ * Middleware that blocks authenticated users from guest-only pages
4
+ * (login, register, forgot-password, reset-password).
5
+ *
6
+ * Replaces the Vike `+guard.ts` pattern — guards now live in the router
7
+ * middleware chain alongside `RequireAuth`, `RateLimit`, and `CsrfMiddleware`.
8
+ */
9
+ export declare function RequireGuest(redirectTo?: string, guardName?: string): MiddlewareHandler;
10
+ //# sourceMappingURL=require-guest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-guest.d.ts","sourceRoot":"","sources":["../src/require-guest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAI5D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,SAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAcpF"}
@@ -0,0 +1,25 @@
1
+ import { app } from '@rudderjs/core';
2
+ import { runWithAuth, Auth } from './auth-manager.js';
3
+ /**
4
+ * Middleware that blocks authenticated users from guest-only pages
5
+ * (login, register, forgot-password, reset-password).
6
+ *
7
+ * Replaces the Vike `+guard.ts` pattern — guards now live in the router
8
+ * middleware chain alongside `RequireAuth`, `RateLimit`, and `CsrfMiddleware`.
9
+ */
10
+ export function RequireGuest(redirectTo = '/', guardName) {
11
+ return async function RequireGuest(req, res, next) {
12
+ const manager = app().make('auth.manager');
13
+ let user = null;
14
+ await runWithAuth(manager, async () => {
15
+ const guard = Auth.guard(guardName ?? manager.config.defaults.guard);
16
+ user = await guard.user();
17
+ });
18
+ if (user) {
19
+ res.redirect(redirectTo);
20
+ return;
21
+ }
22
+ await next();
23
+ };
24
+ }
25
+ //# sourceMappingURL=require-guest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-guest.js","sourceRoot":"","sources":["../src/require-guest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAe,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAGlE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,UAAU,GAAG,GAAG,EAAE,SAAkB;IAC/D,OAAO,KAAK,UAAU,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QAC/C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAc,cAAc,CAAC,CAAA;QACvD,IAAI,IAAI,GAAY,IAAI,CAAA;QACxB,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAK,OAA6C,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC3G,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAC3B,CAAC,CAAC,CAAA;QACF,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QACD,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { Router } from '@rudderjs/router';
2
+ import type { MiddlewareHandler } from '@rudderjs/contracts';
3
+ export interface RegisterAuthRoutesOptions {
4
+ /** View ids override — default: `auth.login`, `auth.register`, `auth.forgot-password`, `auth.reset-password`. */
5
+ views?: {
6
+ login?: string;
7
+ register?: string;
8
+ forgotPassword?: string;
9
+ resetPassword?: string;
10
+ };
11
+ /** Route path override — default: `/login`, `/register`, `/forgot-password`, `/reset-password`. */
12
+ paths?: {
13
+ login?: string;
14
+ register?: string;
15
+ forgotPassword?: string;
16
+ resetPassword?: string;
17
+ };
18
+ /** Where to redirect already-authenticated users visiting a guest page. */
19
+ homeUrl?: string;
20
+ /** Extra middleware to prepend to all guest routes (e.g. CsrfMiddleware). */
21
+ middleware?: MiddlewareHandler[];
22
+ /** Disable RequireGuest (useful in tests). */
23
+ allowAuthenticated?: boolean;
24
+ }
25
+ /**
26
+ * Register auth UI routes (login, register, forgot-password, reset-password) on a router.
27
+ *
28
+ * View files must exist under `app/Views/Auth/` in the consumer project — either
29
+ * hand-vendored from `@rudderjs/auth/views/react/` (v1) or published via
30
+ * `vendor:publish --tag=auth-views` (v2).
31
+ *
32
+ * POST submit handlers are NOT registered here — they live with the consumer's
33
+ * existing `/api/auth/*` endpoints (e.g. `/api/auth/sign-in/email`).
34
+ *
35
+ * Example:
36
+ * ```ts
37
+ * import { Route } from '@rudderjs/router'
38
+ * import { registerAuthRoutes } from '@rudderjs/auth/routes'
39
+ * registerAuthRoutes(Route)
40
+ * ```
41
+ */
42
+ export declare function registerAuthRoutes(router: Router, opts?: RegisterAuthRoutesOptions): void;
43
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAI5D,MAAM,WAAW,yBAAyB;IACxC,iHAAiH;IACjH,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAU,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAO,MAAM,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,aAAa,CAAC,EAAG,MAAM,CAAA;KACxB,CAAA;IACD,mGAAmG;IACnG,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAU,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAO,MAAM,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,aAAa,CAAC,EAAG,MAAM,CAAA;KACxB,CAAA;IACD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAChC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,yBAA8B,GACnC,IAAI,CAwBN"}
package/dist/routes.js ADDED
@@ -0,0 +1,43 @@
1
+ import { view } from '@rudderjs/view';
2
+ import { RequireGuest } from './require-guest.js';
3
+ /**
4
+ * Register auth UI routes (login, register, forgot-password, reset-password) on a router.
5
+ *
6
+ * View files must exist under `app/Views/Auth/` in the consumer project — either
7
+ * hand-vendored from `@rudderjs/auth/views/react/` (v1) or published via
8
+ * `vendor:publish --tag=auth-views` (v2).
9
+ *
10
+ * POST submit handlers are NOT registered here — they live with the consumer's
11
+ * existing `/api/auth/*` endpoints (e.g. `/api/auth/sign-in/email`).
12
+ *
13
+ * Example:
14
+ * ```ts
15
+ * import { Route } from '@rudderjs/router'
16
+ * import { registerAuthRoutes } from '@rudderjs/auth/routes'
17
+ * registerAuthRoutes(Route)
18
+ * ```
19
+ */
20
+ export function registerAuthRoutes(router, opts = {}) {
21
+ const homeUrl = opts.homeUrl ?? '/';
22
+ const paths = {
23
+ login: opts.paths?.login ?? '/login',
24
+ register: opts.paths?.register ?? '/register',
25
+ forgotPassword: opts.paths?.forgotPassword ?? '/forgot-password',
26
+ resetPassword: opts.paths?.resetPassword ?? '/reset-password',
27
+ };
28
+ const views = {
29
+ login: opts.views?.login ?? 'auth.login',
30
+ register: opts.views?.register ?? 'auth.register',
31
+ forgotPassword: opts.views?.forgotPassword ?? 'auth.forgot-password',
32
+ resetPassword: opts.views?.resetPassword ?? 'auth.reset-password',
33
+ };
34
+ const guestOnly = [
35
+ ...(opts.middleware ?? []),
36
+ ...(opts.allowAuthenticated ? [] : [RequireGuest(homeUrl)]),
37
+ ];
38
+ router.get(paths.login, async () => view(views.login, { registerUrl: paths.register, forgotPasswordUrl: paths.forgotPassword, homeUrl }), guestOnly);
39
+ router.get(paths.register, async () => view(views.register, { loginUrl: paths.login, homeUrl }), guestOnly);
40
+ router.get(paths.forgotPassword, async () => view(views.forgotPassword, { loginUrl: paths.login, resetPasswordUrl: paths.resetPassword }), guestOnly);
41
+ router.get(paths.resetPassword, async () => view(views.resetPassword, { loginUrl: paths.login, forgotPasswordUrl: paths.forgotPassword }), guestOnly);
42
+ }
43
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAyBjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,OAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,CAAA;IACnC,MAAM,KAAK,GAAK;QACd,KAAK,EAAW,IAAI,CAAC,KAAK,EAAE,KAAK,IAAa,QAAQ;QACtD,QAAQ,EAAQ,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAU,WAAW;QACzD,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,IAAI,kBAAkB;QAChE,aAAa,EAAG,IAAI,CAAC,KAAK,EAAE,aAAa,IAAK,iBAAiB;KAChE,CAAA;IACD,MAAM,KAAK,GAAG;QACZ,KAAK,EAAW,IAAI,CAAC,KAAK,EAAE,KAAK,IAAa,YAAY;QAC1D,QAAQ,EAAQ,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAU,eAAe;QAC7D,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,IAAI,sBAAsB;QACpE,aAAa,EAAG,IAAI,CAAC,KAAK,EAAE,aAAa,IAAK,qBAAqB;KACpE,CAAA;IAED,MAAM,SAAS,GAAwB;QACrC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;KAC5D,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAW,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAW,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IACtK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAQ,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IACvH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IACrJ,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;AACzJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,14 @@
1
1
  {
2
2
  "name": "@rudderjs/auth",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
+ "rudderjs": {
5
+ "provider": "AuthProvider",
6
+ "stage": "infrastructure",
7
+ "depends": [
8
+ "@rudderjs/session",
9
+ "@rudderjs/hash"
10
+ ]
11
+ },
4
12
  "license": "MIT",
5
13
  "repository": {
6
14
  "type": "git",
@@ -11,7 +19,7 @@
11
19
  "files": [
12
20
  "dist",
13
21
  "boost",
14
- "pages",
22
+ "views",
15
23
  "schema"
16
24
  ],
17
25
  "main": "./dist/index.js",
@@ -21,29 +29,51 @@
21
29
  "import": "./dist/index.js",
22
30
  "types": "./dist/index.d.ts"
23
31
  },
32
+ "./routes": {
33
+ "import": "./dist/routes.js",
34
+ "types": "./dist/routes.d.ts"
35
+ },
36
+ "./gate-observers": {
37
+ "import": "./dist/gate-observers.js",
38
+ "types": "./dist/gate-observers.d.ts"
39
+ },
40
+ "./views/react/Login": "./views/react/Login.tsx",
41
+ "./views/react/Register": "./views/react/Register.tsx",
42
+ "./views/react/ForgotPassword": "./views/react/ForgotPassword.tsx",
43
+ "./views/react/ResetPassword": "./views/react/ResetPassword.tsx",
24
44
  "./package.json": "./package.json"
25
45
  },
26
46
  "dependencies": {
27
- "@rudderjs/core": "0.0.8",
28
- "@rudderjs/contracts": "0.0.3"
47
+ "@rudderjs/contracts": "0.0.4",
48
+ "@rudderjs/core": "0.0.9"
29
49
  },
30
50
  "peerDependencies": {
31
- "@rudderjs/session": "0.0.5",
32
- "@rudderjs/hash": "0.0.1"
51
+ "@rudderjs/hash": "0.0.2",
52
+ "@rudderjs/session": "0.0.6",
53
+ "@rudderjs/router": "0.0.4",
54
+ "@rudderjs/view": "0.0.2"
33
55
  },
34
56
  "peerDependenciesMeta": {
35
57
  "@rudderjs/hash": {
36
58
  "optional": false
37
59
  },
60
+ "@rudderjs/router": {
61
+ "optional": false
62
+ },
38
63
  "@rudderjs/session": {
39
64
  "optional": false
65
+ },
66
+ "@rudderjs/view": {
67
+ "optional": false
40
68
  }
41
69
  },
42
70
  "devDependencies": {
43
71
  "@types/node": "^20.0.0",
44
72
  "typescript": "^5.4.0",
45
- "@rudderjs/hash": "0.0.1",
46
- "@rudderjs/session": "0.0.5"
73
+ "@rudderjs/hash": "0.0.2",
74
+ "@rudderjs/router": "0.0.4",
75
+ "@rudderjs/view": "0.0.2",
76
+ "@rudderjs/session": "0.0.6"
47
77
  },
48
78
  "author": "Suleiman Shahbari",
49
79
  "scripts": {