@c9up/warden 0.1.21 → 0.1.23

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 (62) hide show
  1. package/README.md +1 -1
  2. package/dist/AuthManager.d.ts +14 -3
  3. package/dist/AuthManager.d.ts.map +1 -1
  4. package/dist/AuthManager.js +32 -4
  5. package/dist/AuthManager.js.map +1 -1
  6. package/dist/Authenticator.d.ts +48 -4
  7. package/dist/Authenticator.d.ts.map +1 -1
  8. package/dist/Authenticator.js +234 -25
  9. package/dist/Authenticator.js.map +1 -1
  10. package/dist/config.d.ts +8 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/index.d.ts +3 -7
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/middleware.d.ts +13 -0
  18. package/dist/middleware.d.ts.map +1 -1
  19. package/dist/middleware.js.map +1 -1
  20. package/dist/native/generated.d.ts +8 -0
  21. package/dist/native/generated.d.ts.map +1 -0
  22. package/dist/native/generated.js +7 -0
  23. package/dist/native/generated.js.map +1 -0
  24. package/dist/native.d.ts +8 -9
  25. package/dist/native.d.ts.map +1 -1
  26. package/dist/native.js.map +1 -1
  27. package/dist/strategies/SessionStrategy.d.ts +37 -25
  28. package/dist/strategies/SessionStrategy.d.ts.map +1 -1
  29. package/dist/strategies/SessionStrategy.js +43 -44
  30. package/dist/strategies/SessionStrategy.js.map +1 -1
  31. package/index.win32-x64-msvc.node +0 -0
  32. package/package.json +3 -2
  33. package/scripts/build-napi-types.mjs +68 -0
  34. package/scripts/generate-napi-types.mjs +153 -0
  35. package/src/AuthManager.ts +68 -6
  36. package/src/Authenticator.ts +298 -27
  37. package/src/config.ts +8 -1
  38. package/src/index.ts +9 -11
  39. package/src/middleware.ts +17 -0
  40. package/src/native/generated.ts +23 -0
  41. package/src/native.ts +8 -9
  42. package/src/strategies/SessionStrategy.ts +73 -46
  43. package/dist/firstcontact/FirstContactManager.d.ts +0 -25
  44. package/dist/firstcontact/FirstContactManager.d.ts.map +0 -1
  45. package/dist/firstcontact/FirstContactManager.js +0 -38
  46. package/dist/firstcontact/FirstContactManager.js.map +0 -1
  47. package/dist/firstcontact/drivers/GitHubDriver.d.ts +0 -14
  48. package/dist/firstcontact/drivers/GitHubDriver.d.ts.map +0 -1
  49. package/dist/firstcontact/drivers/GitHubDriver.js +0 -60
  50. package/dist/firstcontact/drivers/GitHubDriver.js.map +0 -1
  51. package/dist/firstcontact/drivers/GoogleDriver.d.ts +0 -14
  52. package/dist/firstcontact/drivers/GoogleDriver.d.ts.map +0 -1
  53. package/dist/firstcontact/drivers/GoogleDriver.js +0 -63
  54. package/dist/firstcontact/drivers/GoogleDriver.js.map +0 -1
  55. package/dist/firstcontact/types.d.ts +0 -44
  56. package/dist/firstcontact/types.d.ts.map +0 -1
  57. package/dist/firstcontact/types.js +0 -22
  58. package/dist/firstcontact/types.js.map +0 -1
  59. package/src/firstcontact/FirstContactManager.ts +0 -54
  60. package/src/firstcontact/drivers/GitHubDriver.ts +0 -77
  61. package/src/firstcontact/drivers/GoogleDriver.ts +0 -80
  62. package/src/firstcontact/types.ts +0 -62
package/README.md CHANGED
@@ -24,7 +24,7 @@ class OrderController {
24
24
 
25
25
  ## Features
26
26
 
27
- - Multi-strategy AuthManager (JWT, session, API key, OAuth)
27
+ - Multi-strategy AuthManager (JWT, session, API key, HTTP Basic)
28
28
  - `@Guard()`, `@Permission()`, `@Role()` decorators
29
29
  - RBAC: `hasRole`, `hasPermission`, `hasAllPermissions`
30
30
  - Unified authorization: Bouncer-shaped abilities & policies over one resolver — RBAC + ACL + ownership + multi-tenant scope, zero `@adonisjs/bouncer` dependency
@@ -9,7 +9,7 @@ import { sanitizePayload } from "./sanitize.js";
9
9
  export { sanitizePayload };
10
10
  import { RightsResolver } from "./rights/RightsResolver.js";
11
11
  import type { EffectivePermissions, Scope } from "./rights/types.js";
12
- import type { SessionStore } from "./strategies/SessionStrategy.js";
12
+ import type { SessionGuardState, SessionStore } from "./strategies/SessionStrategy.js";
13
13
  export interface UserPayload {
14
14
  id: string;
15
15
  roles?: string[];
@@ -215,13 +215,24 @@ export declare class AuthManager {
215
215
  * Fixes the misleading `SessionStrategy.authenticate()` sentinel that
216
216
  * pointed at a then-nonexistent `authManager.login()` (bug-3261).
217
217
  */
218
- login(user: UserPayload, session: SessionStore, strategyName?: string): Promise<void>;
218
+ login(user: UserPayload, session: SessionStore, strategyName?: string, state?: SessionGuardState): Promise<void>;
219
+ /**
220
+ * Revive a user from a remember-me cookie through a session guard, recording
221
+ * the attempt on the caller's per-request `state`.
222
+ *
223
+ * The returned `cookieValue` must replace the one the browser holds — the
224
+ * token is single-use and recycled on every successful revival.
225
+ */
226
+ authenticateViaRememberMeToken(cookieValue: unknown, strategyName?: string, state?: SessionGuardState): Promise<{
227
+ user: UserPayload;
228
+ cookieValue: string;
229
+ } | null>;
219
230
  /**
220
231
  * Log a user out of a session-capable guard (AdonisJS `auth.use('web').logout()`
221
232
  * parity). Delegates to the guard's `logout()`. Throws if the resolved guard
222
233
  * cannot log out.
223
234
  */
224
- logout(session: SessionStore, strategyName?: string): Promise<void>;
235
+ logout(session: SessionStore, strategyName?: string, state?: SessionGuardState): Promise<void>;
225
236
  }
226
237
  /** Strip dangerous prototype-pollution keys from user payload. */
227
238
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../src/AuthManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../src/AuthManager.ts"],"names":[],"mappings":"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"}
@@ -279,7 +279,7 @@ export class AuthManager {
279
279
  * Fixes the misleading `SessionStrategy.authenticate()` sentinel that
280
280
  * pointed at a then-nonexistent `authManager.login()` (bug-3261).
281
281
  */
282
- async login(user, session, strategyName) {
282
+ async login(user, session, strategyName, state) {
283
283
  const strategy = this.getStrategy(strategyName);
284
284
  if (!isLoginCapable(strategy)) {
285
285
  throw new WardenError("STRATEGY_CANNOT_LOGIN", `Auth strategy '${strategyName ?? this.#default}' does not support session login.`, {
@@ -291,24 +291,40 @@ export class AuthManager {
291
291
  guardName: strategyName ?? this.#default,
292
292
  user,
293
293
  });
294
- await strategy.login(user, session);
294
+ await strategy.login(user, session, state);
295
295
  this.#emit(`${prefix}:login_succeeded`, {
296
296
  guardName: strategyName ?? this.#default,
297
297
  user,
298
298
  sessionId: undefined,
299
299
  });
300
300
  }
301
+ /**
302
+ * Revive a user from a remember-me cookie through a session guard, recording
303
+ * the attempt on the caller's per-request `state`.
304
+ *
305
+ * The returned `cookieValue` must replace the one the browser holds — the
306
+ * token is single-use and recycled on every successful revival.
307
+ */
308
+ async authenticateViaRememberMeToken(cookieValue, strategyName, state) {
309
+ const strategy = this.getStrategy(strategyName);
310
+ if (!isRememberMeCapable(strategy)) {
311
+ throw new WardenError("STRATEGY_CANNOT_LOGIN", `Auth strategy '${strategyName ?? this.#default}' has no remember-me tokens.`, {
312
+ hint: "Remember-me is a session-guard feature. Configure `rememberMeTokens` on the guard, or implement authenticateViaRememberMeToken() on your own.",
313
+ });
314
+ }
315
+ return strategy.authenticateViaRememberMeToken(cookieValue, state);
316
+ }
301
317
  /**
302
318
  * Log a user out of a session-capable guard (AdonisJS `auth.use('web').logout()`
303
319
  * parity). Delegates to the guard's `logout()`. Throws if the resolved guard
304
320
  * cannot log out.
305
321
  */
306
- async logout(session, strategyName) {
322
+ async logout(session, strategyName, state) {
307
323
  const strategy = this.getStrategy(strategyName);
308
324
  if (!isLoginCapable(strategy)) {
309
325
  throw new WardenError("STRATEGY_CANNOT_LOGIN", `Auth strategy '${strategyName ?? this.#default}' does not support session logout.`);
310
326
  }
311
- await strategy.logout(session);
327
+ await strategy.logout(session, state);
312
328
  this.#emit(`${authEventPrefix(strategy.name)}:logged_out`, {
313
329
  guardName: strategyName ?? this.#default,
314
330
  user: null,
@@ -316,6 +332,18 @@ export class AuthManager {
316
332
  });
317
333
  }
318
334
  }
335
+ /**
336
+ * Capability check for {@link AuthManager.authenticateViaRememberMeToken}.
337
+ *
338
+ * Structural, like {@link isLoginCapable} beside it, and NOT an `instanceof`:
339
+ * a guard an application wrote itself, carrying the same method, is as capable
340
+ * as the one shipped here — refusing it would make the built-in strategy the
341
+ * only one that can ever hold a remember-me token.
342
+ */
343
+ function isRememberMeCapable(strategy) {
344
+ return ("authenticateViaRememberMeToken" in strategy &&
345
+ typeof strategy.authenticateViaRememberMeToken === "function");
346
+ }
319
347
  /**
320
348
  * Capability check for {@link AuthManager.login}/{@link AuthManager.logout}.
321
349
  * `login`/`logout` are not on the base `AuthStrategy` contract (only stateful
@@ -1 +1 @@
1
- {"version":3,"file":"AuthManager.js","sourceRoot":"","sources":["../src/AuthManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAyC5D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,UAA8B;IAC7D,IAAI,CAAC,UAAU;QAAE,OAAO,cAAc,CAAC;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,OAAO,CAAC;AACzE,CAAC;AAmDD;;;;GAIG;AACH,SAAS,aAAa,CACrB,QAAsB;IAEtB,OAAO,WAAW,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,UAAU,CAAC;AAC5E,CAAC;AAaD,MAAM,OAAO,WAAW;IACvB,2EAA2E;IAC3E,iFAAiF;IACjF,OAAO,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC/C,QAAQ,CAAS;IACR,OAAO,CAAiB;IAEjC;;;;OAIG;IACH,QAAQ,CAA4B;IAEpC;;;OAGG;IACH,UAAU,CAAC,OAAsB;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAa,EAAE,OAAgC;QAC5D,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,KAAa,EAAE,OAAgC;QACpD,IAAI,CAAC;YACJ,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACR,kEAAkE;QACnE,CAAC;IACF,CAAC;IAED,YAAY,MAAkB;QAC7B,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC;QAC9D,IAAI,CAAC,MAAM,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,WAAW,CACpB,gBAAgB,EAChB,wGAAwG,CACxG,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,cAAc,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,kEAAkE;QAClE,kEAAkE;QAClE,iEAAiE;QACjE,sEAAsE;QACtE,wEAAwE;QACxE,sCAAsC;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,WAAW,CACpB,gBAAgB,EAChB,6IAA6I,CAC7I,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,WAAW,CACpB,gBAAgB,EAChB,kBAAkB,YAAY,4BAA4B,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,YAAY,CACjB,WAAoC,EACpC,YAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,IAAI;gBAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,oEAAoE;YACpE,qEAAqE;YACrE,kEAAkE;YAClE,IAAI,GAAG,YAAY,WAAW;gBAAE,MAAM,GAAG,CAAC;YAC1C,OAAO;gBACN,aAAa,EAAE,KAAK;gBACpB,KAAK,EACJ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B;aACpE,CAAC;QACH,CAAC;IACF,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,MAAM,CACX,KAAa,EACb,YAAqB,EACrB,OAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,IAAI;gBAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,mEAAmE;YACnE,mEAAmE;YACnE,sEAAsE;YACtE,IAAI,GAAG,YAAY,WAAW;gBAAE,MAAM,GAAG,CAAC;YAC1C,OAAO;gBACN,aAAa,EAAE,KAAK;gBACpB,KAAK,EACJ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B;gBAClE,aAAa,EAAE,IAAI;aACnB,CAAC;QACH,CAAC;IACF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,IAAiB,EAAE,YAAqB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,WAAW,CACpB,uBAAuB,EACvB,kBAAkB,YAAY,IAAI,IAAI,CAAC,QAAQ,wBAAwB,EACvE;gBACC,IAAI,EAAE,8HAA8H;aACpI,CACD,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CACjB,IAAiB,EACjB,QAAe,QAAQ;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CACZ,IAAiB,EACjB,IAAY,EACZ,QAAe,QAAQ;QAEvB,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAClB,IAAiB,EACjB,UAAkB,EAClB,QAAe,QAAQ;QAEvB,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CACtB,IAAiB,EACjB,WAAqB,EACrB,QAAe,QAAQ;QAEvB,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,yCAAyC;IACzC;;;;;;;OAOG;IACH,mBAAmB,CAAC,GAAkB;QACrC,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,yBAAyB;QAOxB,OAAO;YACN,GAAG,EAAE,CAAC,KAAc,EAAE,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;oBACX,MAAM,IAAI,WAAW,CACpB,wBAAwB,EACxB,kBAAkB,KAAK,IAAI,IAAI,CAAC,QAAQ,qEAAqE,EAC7G;wBACC,IAAI,EAAE,qGAAqG;qBAC3G,CACD,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;YACvC,CAAC;SACD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,SAAkB;QAChC,IAAI,CAAC;YACJ,OAAO,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,WAAW,CAAC,IAAa;QACxB,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,WAAW,CACpB,oBAAoB,EACpB,kBAAkB,YAAY,kBAAkB,EAChD;gBACC,IAAI,EAAE,0DAA0D;aAChE,CACD,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,0CAA0C;IAC1C,gBAAgB,CAAC,IAAY,EAAE,QAAsB;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,yCAAyC;IACzC,gBAAgB;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CACV,IAAiB,EACjB,OAAqB,EACrB,YAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,WAAW,CACpB,uBAAuB,EACvB,kBAAkB,YAAY,IAAI,IAAI,CAAC,QAAQ,mCAAmC,EAClF;gBACC,IAAI,EAAE,2IAA2I;aACjJ,CACD,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,kBAAkB,EAAE;YACvC,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ;YACxC,IAAI;SACJ,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,kBAAkB,EAAE;YACvC,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ;YACxC,IAAI;YACJ,SAAS,EAAE,SAAS;SACpB,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,OAAqB,EAAE,YAAqB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,WAAW,CACpB,uBAAuB,EACvB,kBAAkB,YAAY,IAAI,IAAI,CAAC,QAAQ,oCAAoC,CACnF,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;YAC1D,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ;YACxC,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;IACJ,CAAC;CACD;AAQD;;;;GAIG;AACH,SAAS,cAAc,CACtB,QAAsB;IAEtB,OAAO,CACN,OAAO,IAAI,QAAQ;QACnB,OAAO,QAAQ,CAAC,KAAK,KAAK,UAAU;QACpC,QAAQ,IAAI,QAAQ;QACpB,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,CACrC,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE;;;;;;GAMG"}
1
+ {"version":3,"file":"AuthManager.js","sourceRoot":"","sources":["../src/AuthManager.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { AuthManager, AuthResult, UserPayload } from "./AuthManager.js";
17
17
  import type { WardenContext } from "./middleware.js";
18
- import type { SessionStore } from "./strategies/SessionStrategy.js";
18
+ import { type SessionStore } from "./strategies/SessionStrategy.js";
19
19
  /**
20
20
  * Guard names Warden accepts for the API-key / access-tokens driver. AdonisJS
21
21
  * names the driver `access_tokens`; the legacy `api-key` spelling stays valid so
@@ -53,7 +53,6 @@ export declare function tryAuthenticate(auth: AuthManager, strategies: string[],
53
53
  bearerToken: string;
54
54
  apiKey: string;
55
55
  session: SessionStore | undefined;
56
- hasSessionStrategy: boolean;
57
56
  }): Promise<AuthAttempt>;
58
57
  /**
59
58
  * A named-guard accessor (AdonisJS `auth.use('web')`). Exposes the stateful
@@ -65,10 +64,55 @@ export declare class GuardAccessor {
65
64
  /** The user, only if the request authenticated via THIS guard. */
66
65
  get user(): UserPayload | undefined;
67
66
  get isAuthenticated(): boolean;
67
+ /**
68
+ * Whether the user was revived from a remember-me cookie rather than
69
+ * signing in.
70
+ *
71
+ * This is the distinction that lets an app demand the password again before
72
+ * something sensitive — changing an email, spending money, deleting an
73
+ * account.
74
+ */
75
+ get viaRemember(): boolean;
76
+ /** Whether a remember-me cookie was tried at all on this request. */
77
+ get attemptedViaRemember(): boolean;
78
+ /**
79
+ * Whether `logout()` has run during this request.
80
+ *
81
+ * A handler that logs out and then keeps working — clearing a cart, writing
82
+ * an audit line — could not otherwise tell the session was already gone.
83
+ */
84
+ get isLoggedOut(): boolean;
85
+ /**
86
+ * Revive the user from a remember-me cookie, recording on this request that
87
+ * one was tried and whether it worked.
88
+ *
89
+ * The returned `cookieValue` must replace the one the browser holds: the
90
+ * token is single-use and is recycled on every successful revival.
91
+ */
92
+ authenticateViaRememberMeToken(cookieValue: unknown): Promise<{
93
+ user: UserPayload;
94
+ cookieValue: string;
95
+ } | null>;
68
96
  /** Authenticate the request using only this guard (throws on failure). */
69
97
  authenticate(): Promise<void>;
70
- /** Log a user in through this guard (session guards). */
71
- login(user: UserPayload): Promise<void>;
98
+ /**
99
+ * Revive this request from the remember-me cookie, if the browser holds one.
100
+ *
101
+ * The token is single-use: a success recycles the cookie and re-seats the
102
+ * session, so a stolen copy stops working the moment the real user comes
103
+ * back, and the rest of the request sees an ordinary signed-in user.
104
+ */
105
+ tryRememberMeCookie(): Promise<UserPayload | undefined>;
106
+ /**
107
+ * Log a user in through this guard (session guards).
108
+ *
109
+ * `remember` mints a remember-me token and writes it as an ENCRYPTED,
110
+ * httpOnly cookie — the cookie IS the credential, so anyone who can read it
111
+ * can present it. Without `remember`, any cookie the browser still holds is
112
+ * cleared: signing in without ticking the box has to REVOKE the standing
113
+ * permission, not leave it in place.
114
+ */
115
+ login(user: UserPayload, remember?: boolean): Promise<void>;
72
116
  /** Log the current user out of this guard (session guards). */
73
117
  logout(): Promise<void>;
74
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Authenticator.d.ts","sourceRoot":"","sources":["../src/Authenticator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Authenticator.d.ts","sourceRoot":"","sources":["../src/Authenticator.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import { E_UNAUTHORIZED_ACCESS, WardenError } from "./errors.js";
17
17
  import { sanitizePayload } from "./sanitize.js";
18
+ import { createSessionGuardState, } from "./strategies/SessionStrategy.js";
18
19
  /**
19
20
  * Guard names Warden accepts for the API-key / access-tokens driver. AdonisJS
20
21
  * names the driver `access_tokens`; the legacy `api-key` spelling stays valid so
@@ -24,6 +25,41 @@ export const API_KEY_GUARD_NAMES = [
24
25
  "access_tokens",
25
26
  "api-key",
26
27
  ];
28
+ /**
29
+ * The strategy behind a guard name, or `undefined` when nothing is registered
30
+ * under it.
31
+ *
32
+ * `getStrategy()` throws for an unknown name — correct when an application
33
+ * asks for a guard by name, wrong here: this is a capability probe across a
34
+ * list, and a name that resolves to nothing simply is not a session guard.
35
+ */
36
+ function strategyOrUndefined(auth, name) {
37
+ try {
38
+ return auth.getStrategy(name);
39
+ }
40
+ catch {
41
+ return undefined;
42
+ }
43
+ }
44
+ /**
45
+ * Structural, like every other capability probe here: a guard an application
46
+ * wrote itself, carrying the same three members, keeps users signed in just as
47
+ * well as the one shipped with the package.
48
+ */
49
+ function isRememberMeIssuer(strategy) {
50
+ return (typeof Reflect.get(strategy, "issueRememberMeToken") === "function" &&
51
+ typeof Reflect.get(strategy, "authenticateViaRememberMeToken") ===
52
+ "function" &&
53
+ typeof Reflect.get(strategy, "seatSession") === "function" &&
54
+ typeof Reflect.get(strategy, "revokeRememberMeToken") === "function" &&
55
+ typeof Reflect.get(strategy, "rememberMeCookieName") === "string" &&
56
+ typeof Reflect.get(strategy, "rememberMeAgeSeconds") === "number");
57
+ }
58
+ /** Whether the guard behind `name` authenticates from the request context. */
59
+ function isSessionGuard(auth, name) {
60
+ const strategy = strategyOrUndefined(auth, name);
61
+ return strategy !== undefined && hasVerifyWithContext(strategy);
62
+ }
27
63
  function hasVerifyWithContext(strategy) {
28
64
  return (typeof strategy.verifyWithContext === "function");
29
65
  }
@@ -78,22 +114,22 @@ export async function tryAuthenticate(auth, strategies, creds) {
78
114
  for (const strategyName of strategies) {
79
115
  try {
80
116
  let r;
81
- if (strategyName === "session") {
82
- const strategy = auth.getStrategy(strategyName);
83
- const verifyWithContext = strategy && hasVerifyWithContext(strategy)
84
- ? strategy.verifyWithContext
85
- : undefined;
86
- if (verifyWithContext) {
87
- attemptCount++;
88
- r = await verifyWithContext.call(strategy, "", { session });
89
- // The session path bypasses AuthManager.verify(), so apply the
90
- // same prototype-pollution guard JWT / api-key users get there.
91
- if (r.user)
92
- sanitizePayload(r.user);
93
- }
94
- else {
95
- continue;
96
- }
117
+ // A session guard is one that can verify FROM THE REQUEST CONTEXT,
118
+ // not one registered under a particular name. `guards: { web:
119
+ // sessionGuard(...) }` is the documented config shape, and matching
120
+ // on the literal "session" sent it down the bearer-token path — so
121
+ // `auth.use('web').authenticate()` never read the session at all.
122
+ const strategy = strategyOrUndefined(auth, strategyName);
123
+ const verifyWithContext = strategy && hasVerifyWithContext(strategy)
124
+ ? strategy.verifyWithContext
125
+ : undefined;
126
+ if (verifyWithContext !== undefined) {
127
+ attemptCount++;
128
+ r = await verifyWithContext.call(strategy, "", { session });
129
+ // The session path bypasses AuthManager.verify(), so apply the
130
+ // same prototype-pollution guard JWT / api-key users get there.
131
+ if (r.user)
132
+ sanitizePayload(r.user);
97
133
  }
98
134
  else {
99
135
  // Native-first credential, other transport as fallback so a
@@ -135,6 +171,12 @@ export class GuardAccessor {
135
171
  #auth;
136
172
  #name;
137
173
  #parent;
174
+ /**
175
+ * The session-guard flags for THIS request. They live on the accessor —
176
+ * which the Authenticator builds and caches per request — and never on the
177
+ * strategy, which is built once from config and shared by every request.
178
+ */
179
+ #state = createSessionGuardState();
138
180
  constructor(ctx, auth, name, parent) {
139
181
  this.#ctx = ctx;
140
182
  this.#auth = auth;
@@ -150,17 +192,169 @@ export class GuardAccessor {
150
192
  get isAuthenticated() {
151
193
  return this.user !== undefined;
152
194
  }
195
+ /**
196
+ * Whether the user was revived from a remember-me cookie rather than
197
+ * signing in.
198
+ *
199
+ * This is the distinction that lets an app demand the password again before
200
+ * something sensitive — changing an email, spending money, deleting an
201
+ * account.
202
+ */
203
+ get viaRemember() {
204
+ return this.#state.viaRemember;
205
+ }
206
+ /** Whether a remember-me cookie was tried at all on this request. */
207
+ get attemptedViaRemember() {
208
+ return this.#state.attemptedViaRemember;
209
+ }
210
+ /**
211
+ * Whether `logout()` has run during this request.
212
+ *
213
+ * A handler that logs out and then keeps working — clearing a cart, writing
214
+ * an audit line — could not otherwise tell the session was already gone.
215
+ */
216
+ get isLoggedOut() {
217
+ return this.#state.isLoggedOut;
218
+ }
219
+ /**
220
+ * Revive the user from a remember-me cookie, recording on this request that
221
+ * one was tried and whether it worked.
222
+ *
223
+ * The returned `cookieValue` must replace the one the browser holds: the
224
+ * token is single-use and is recycled on every successful revival.
225
+ */
226
+ authenticateViaRememberMeToken(cookieValue) {
227
+ return this.#auth.authenticateViaRememberMeToken(cookieValue, this.#name, this.#state);
228
+ }
153
229
  /** Authenticate the request using only this guard (throws on failure). */
154
230
  authenticate() {
155
231
  return this.#parent.authenticateUsing([this.#name]);
156
232
  }
157
- /** Log a user in through this guard (session guards). */
158
- login(user) {
159
- return this.#auth.login(user, this.#requireSession(), this.#name);
233
+ /**
234
+ * Revive this request from the remember-me cookie, if the browser holds one.
235
+ *
236
+ * The token is single-use: a success recycles the cookie and re-seats the
237
+ * session, so a stolen copy stops working the moment the real user comes
238
+ * back, and the rest of the request sees an ordinary signed-in user.
239
+ */
240
+ async tryRememberMeCookie() {
241
+ const read = this.#ctx.request.encryptedCookie;
242
+ const write = this.#ctx.response.encryptedCookie;
243
+ const session = this.#ctx.session;
244
+ if (!read || !write || !session)
245
+ return undefined;
246
+ const strategy = strategyOrUndefined(this.#auth, this.#name);
247
+ if (!strategy || !isRememberMeIssuer(strategy))
248
+ return undefined;
249
+ const cookie = read.call(this.#ctx.request, strategy.rememberMeCookieName);
250
+ if (!cookie)
251
+ return undefined;
252
+ const revived = await strategy.authenticateViaRememberMeToken(cookie, this.#state);
253
+ if (!revived)
254
+ return undefined;
255
+ write.call(this.#ctx.response, strategy.rememberMeCookieName, revived.cookieValue, { maxAge: strategy.rememberMeAgeSeconds, httpOnly: true });
256
+ // Seat the session WITHOUT `login()`: that method means a password was
257
+ // typed, and it clears `viaRemember` — the one thing this path exists to
258
+ // report, and what an app checks before letting someone change an email
259
+ // or spend money.
260
+ strategy.seatSession(revived.user, session);
261
+ return revived.user;
262
+ }
263
+ /**
264
+ * Log a user in through this guard (session guards).
265
+ *
266
+ * `remember` mints a remember-me token and writes it as an ENCRYPTED,
267
+ * httpOnly cookie — the cookie IS the credential, so anyone who can read it
268
+ * can present it. Without `remember`, any cookie the browser still holds is
269
+ * cleared: signing in without ticking the box has to REVOKE the standing
270
+ * permission, not leave it in place.
271
+ */
272
+ async login(user, remember = false) {
273
+ const session = this.#requireSession();
274
+ const issued = remember ? await this.#issueRememberMe(user) : undefined;
275
+ if (!remember)
276
+ this.#clearRememberMe();
277
+ try {
278
+ await this.#auth.login(user, session, this.#name, this.#state);
279
+ }
280
+ catch (err) {
281
+ // The token is minted and the cookie sent before the session is
282
+ // seated — upstream's order, and it has to be, because the cookie
283
+ // belongs on the same response.
284
+ //
285
+ // NAMED DEVIATION — upstream does not roll any of this back; it has
286
+ // no need to, because its session write is a map assignment that
287
+ // cannot fail. Here `login()` also fires listeners, any of which
288
+ // can throw, so the window is real.
289
+ //
290
+ // And clearing the cookie is not enough: the token was PERSISTED,
291
+ // and its value reached the wire, where it may have been captured
292
+ // — a proxy log, an already-flushed response. Revoking the row is
293
+ // what makes a failed sign-in leave nothing usable behind.
294
+ if (issued !== undefined)
295
+ await this.#revokeRememberMe(issued);
296
+ throw err;
297
+ }
298
+ }
299
+ /** Undo an issued remember-me: the stored row first, then the cookie. */
300
+ async #revokeRememberMe(value) {
301
+ const strategy = strategyOrUndefined(this.#auth, this.#name);
302
+ if (strategy && isRememberMeIssuer(strategy)) {
303
+ // Best-effort: a store that is itself down must not replace the
304
+ // caller's error with its own.
305
+ await strategy.revokeRememberMeToken(value).catch(() => undefined);
306
+ }
307
+ this.#clearRememberMe();
308
+ }
309
+ /**
310
+ * Mint the token and put it in the browser, or say why it cannot.
311
+ *
312
+ * Returns the minted value so a failure further along can revoke it: a
313
+ * persisted token nobody can reach is still a credential.
314
+ */
315
+ async #issueRememberMe(user) {
316
+ const strategy = strategyOrUndefined(this.#auth, this.#name);
317
+ if (!strategy || !isRememberMeIssuer(strategy)) {
318
+ throw new WardenError("REMEMBER_ME_UNAVAILABLE", `Guard '${this.#name}' cannot keep a user signed in: no remember-me tokens are configured.`, {
319
+ hint: "Set `rememberMeTokens` on the session guard, or call login(user) without the remember flag.",
320
+ });
321
+ }
322
+ const value = await strategy.issueRememberMeToken(user);
323
+ if (value === null) {
324
+ throw new WardenError("REMEMBER_ME_UNAVAILABLE", `Guard '${this.#name}' cannot keep a user signed in: no remember-me tokens are configured.`, {
325
+ hint: "Set `rememberMeTokens` on the session guard, or call login(user) without the remember flag.",
326
+ });
327
+ }
328
+ const write = this.#ctx.response.encryptedCookie;
329
+ if (!write) {
330
+ throw new WardenError("REMEMBER_ME_UNAVAILABLE", "This host cannot write an encrypted cookie, which is where the remember-me token lives.", {
331
+ hint: "Use a host whose response exposes encryptedCookie(), or call login(user) without the remember flag.",
332
+ });
333
+ }
334
+ try {
335
+ write.call(this.#ctx.response, strategy.rememberMeCookieName, value, {
336
+ maxAge: strategy.rememberMeAgeSeconds,
337
+ httpOnly: true,
338
+ });
339
+ }
340
+ catch (err) {
341
+ // The row exists and the browser will never hold it: a credential
342
+ // nobody can reach is still one, so it does not survive the failure.
343
+ await strategy.revokeRememberMeToken(value).catch(() => undefined);
344
+ throw err;
345
+ }
346
+ return value;
347
+ }
348
+ /** Drop whatever remember-me cookie the browser is still holding. */
349
+ #clearRememberMe() {
350
+ const strategy = strategyOrUndefined(this.#auth, this.#name);
351
+ if (!strategy || !isRememberMeIssuer(strategy))
352
+ return;
353
+ this.#ctx.response.clearCookie?.call(this.#ctx.response, strategy.rememberMeCookieName);
160
354
  }
161
355
  /** Log the current user out of this guard (session guards). */
162
356
  logout() {
163
- return this.#auth.logout(this.#requireSession(), this.#name);
357
+ return this.#auth.logout(this.#requireSession(), this.#name, this.#state);
164
358
  }
165
359
  #requireSession() {
166
360
  if (!this.#ctx.session) {
@@ -272,11 +466,26 @@ export class Authenticator {
272
466
  // must not be told about bearer-token traffic under the same name.
273
467
  this.#auth.emitAuthEvent(`${this.#auth.eventPrefixFor(guardName)}:authentication_attempted`, { guardName });
274
468
  const creds = extractCredentials(this.#ctx, this.#auth);
275
- const hasSessionStrategy = names.includes("session");
276
- const { result, viaGuard, attemptCount, crashCount } = await tryAuthenticate(this.#auth, names, {
277
- ...creds,
278
- hasSessionStrategy,
279
- });
469
+ // Same rule as the loop above: a session guard is one that verifies from
470
+ // the request context. Matching the literal name meant a guard called
471
+ // `web` never got the login redirect a browser needs.
472
+ const hasSessionStrategy = names.some((name) => isSessionGuard(this.#auth, name));
473
+ const attempt = await tryAuthenticate(this.#auth, names, creds);
474
+ const { attemptCount, crashCount } = attempt;
475
+ let result = attempt.result;
476
+ let viaGuard = attempt.viaGuard;
477
+ // No credential answered, but the browser may still hold a remember-me
478
+ // cookie — that is what "keep me signed in" means, and nothing read it.
479
+ if (!result?.authenticated && hasSessionStrategy) {
480
+ for (const name of names) {
481
+ const user = await this.use(name).tryRememberMeCookie();
482
+ if (user) {
483
+ result = { authenticated: true, user };
484
+ viaGuard = name;
485
+ break;
486
+ }
487
+ }
488
+ }
280
489
  if (result?.authenticated && result.user) {
281
490
  this.#user = result.user;
282
491
  this.#viaGuard = viaGuard;
@@ -1 +1 @@
1
- {"version":3,"file":"Authenticator.js","sourceRoot":"","sources":["../src/Authenticator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Authenticator.js","sourceRoot":"","sources":["../src/Authenticator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACN,uBAAuB,GAGvB,MAAM,iCAAiC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACrD,eAAe;IACf,SAAS;CACT,CAAC;AAMF;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAC3B,IAAiB,EACjB,IAAY;IAEZ,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAkBD;;;;GAIG;AACH,SAAS,kBAAkB,CAC1B,QAAsB;IAEtB,OAAO,CACN,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,KAAK,UAAU;QACnE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,gCAAgC,CAAC;YAC7D,UAAU;QACX,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,UAAU;QAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,KAAK,UAAU;QACpE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,KAAK,QAAQ;QACjE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,KAAK,QAAQ,CACjE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CAAC,IAAiB,EAAE,IAAY;IACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO,QAAQ,KAAK,SAAS,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,oBAAoB,CAC5B,QAAsB;IAEtB,OAAO,CACN,OAAQ,QAAgC,CAAC,iBAAiB,KAAK,UAAU,CACzE,CAAC;AACH,CAAC;AASD;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAiB;IAC7C,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACR,uDAAuD;QACxD,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CACjC,GAAkB,EAClB,IAAiB;IAEjB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QACnD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,EAAE,CAAC;IACN,4EAA4E;IAC5E,6DAA6D;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACtE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;AACtD,CAAC;AAWD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,IAAiB,EACjB,UAAoB,EACpB,KAIC;IAED,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC/C,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,QAA4B,CAAC;IACjC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,YAAY,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC;YACJ,IAAI,CAAa,CAAC;YAClB,mEAAmE;YACnE,8DAA8D;YAC9D,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACzD,MAAM,iBAAiB,GACtB,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC;gBACzC,CAAC,CAAC,QAAQ,CAAC,iBAAiB;gBAC5B,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACrC,YAAY,EAAE,CAAC;gBACf,CAAC,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC5D,+DAA+D;gBAC/D,gEAAgE;gBAChE,IAAI,CAAC,CAAC,IAAI;oBAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,4DAA4D;gBAC5D,+DAA+D;gBAC/D,iEAAiE;gBACjE,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC5D,CAAC,CAAC,MAAM,IAAI,WAAW;oBACvB,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC;gBACzB,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAC1B,YAAY,EAAE,CAAC;gBACf,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM,GAAG,CAAC,CAAC;gBACX,QAAQ,GAAG,YAAY,CAAC;gBACxB,MAAM;YACP,CAAC;YACD,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC9B,UAAU,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACZ,sBAAsB,YAAY,4BAA4B,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,CAC1F,CAAC;YACH,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,sEAAsE;YACtE,mEAAmE;YACnE,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACZ,sBAAsB,YAAY,0BAA0B,EAC5D,GAAG,CACH,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,IAAI,CAAgB;IACpB,KAAK,CAAc;IACnB,KAAK,CAAS;IACd,OAAO,CAAgB;IAChC;;;;OAIG;IACM,MAAM,GAAsB,uBAAuB,EAAE,CAAC;IAE/D,YACC,GAAkB,EAClB,IAAiB,EACjB,IAAY,EACZ,MAAqB;QAErB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kEAAkE;IAClE,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,KAAK,IAAI,CAAC,KAAK;YACvD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;YACnB,CAAC,CAAC,SAAS,CAAC;IACd,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,qEAAqE;IACrE,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,8BAA8B,CAC7B,WAAoB;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAC/C,WAAW,EACX,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CACX,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,YAAY;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAElD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,8BAA8B,CAC5D,MAAM,EACN,IAAI,CAAC,MAAM,CACX,CAAC;QACF,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,KAAK,CAAC,IAAI,CACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,QAAQ,CAAC,oBAAoB,EAC7B,OAAO,CAAC,WAAW,EACnB,EAAE,MAAM,EAAE,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CACzD,CAAC;QACF,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,kBAAkB;QAClB,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,CAAC,IAAiB,EAAE,QAAQ,GAAG,KAAK;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,gEAAgE;YAChE,kEAAkE;YAClE,gCAAgC;YAChC,EAAE;YACF,oEAAoE;YACpE,iEAAiE;YACjE,iEAAiE;YACjE,oCAAoC;YACpC,EAAE;YACF,kEAAkE;YAClE,kEAAkE;YAClE,kEAAkE;YAClE,2DAA2D;YAC3D,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,iBAAiB,CAAC,KAAa;QACpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,gEAAgE;YAChE,+BAA+B;YAC/B,MAAM,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAiB;QACvC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,WAAW,CACpB,yBAAyB,EACzB,UAAU,IAAI,CAAC,KAAK,uEAAuE,EAC3F;gBACC,IAAI,EAAE,6FAA6F;aACnG,CACD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,WAAW,CACpB,yBAAyB,EACzB,UAAU,IAAI,CAAC,KAAK,uEAAuE,EAC3F;gBACC,IAAI,EAAE,6FAA6F;aACnG,CACD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,WAAW,CACpB,yBAAyB,EACzB,yFAAyF,EACzF;gBACC,IAAI,EAAE,qGAAqG;aAC3G,CACD,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE;gBACpE,MAAM,EAAE,QAAQ,CAAC,oBAAoB;gBACrC,QAAQ,EAAE,IAAI;aACd,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,kEAAkE;YAClE,qEAAqE;YACrE,MAAM,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACnE,MAAM,GAAG,CAAC;QACX,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,gBAAgB;QACf,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAAE,OAAO;QACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,QAAQ,CAAC,oBAAoB,CAC7B,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,eAAe;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,WAAW,CACpB,YAAY,EACZ,UAAU,IAAI,CAAC,KAAK,4GAA4G,CAChI,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC1B,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAChB,IAAI,CAAgB;IACpB,KAAK,CAAc;IAC5B,KAAK,CAAe;IACpB,SAAS,CAAU;IACnB,UAAU,GAAG,KAAK,CAAC;IACV,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IAExD,YAAY,GAAkB,EAAE,IAAiB;QAChD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,0DAA0D;IAC1D,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,qEAAqE;IACrE,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,2EAA2E;IAC3E,IAAI,uBAAuB;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,gEAAgE;IAChE,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;IAC1B,CAAC;IAED,+EAA+E;IAC/E,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;IAChC,CAAC;IAED,qFAAqF;IACrF,YAAY;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACV,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,YAAY,qBAAqB;gBAAE,OAAO,KAAK,CAAC;YACvD,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CACf,MAAiB,EACjB,OAAiC;QAEjC,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,oEAAoE;YACpE,qEAAqE;YACrE,2CAA2C;YAC3C,IAAI,GAAG,YAAY,qBAAqB;gBAAE,OAAO,KAAK,CAAC;YACvD,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACtB,MAAiB,EACjB,OAAiC;QAEjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,KAAK,GACV,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC7D,wEAAwE;QACxE,yEAAyE;QACzE,mEAAmE;QACnE,IAAI,CAAC,KAAK,CAAC,aAAa,CACvB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,2BAA2B,EAClE,EAAE,SAAS,EAAE,CACb,CAAC;QACF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,yEAAyE;QACzE,sEAAsE;QACtE,sDAAsD;QACtD,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAChC,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC7C,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEhC,uEAAuE;QACvE,wEAAwE;QACxE,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,kBAAkB,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC;gBACxD,IAAI,IAAI,EAAE,CAAC;oBACV,MAAM,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACvC,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,MAAM,EAAE,aAAa,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,sEAAsE;YACtE,aAAa;YACb,MAAM,MAAM,GAAG,QAAQ,IAAI,SAAS,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,aAAa,CACvB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2BAA2B,EAC/D,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAC9D,CAAC;YACF,OAAO;QACR,CAAC;QACD,gEAAgE;QAChE,0EAA0E;QAC1E,IAAI,YAAY,GAAG,CAAC,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YACrD,MAAM,IAAI,WAAW,CACpB,qBAAqB,EACrB,gFAAgF,EAChF,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,qBAAqB,CACxC,MAAM,EAAE,KAAK,IAAI,qBAAqB,EACtC;YACC,eAAe,EAAE,SAAS;YAC1B,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS;SAChE,CACD,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,aAAa,CACvB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,wBAAwB,EAC/D,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAC7B,CAAC;QACF,MAAM,OAAO,CAAC;IACf,CAAC;IAED,sEAAsE;IACtE,aAAa;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,qBAAqB,CAC9B,yEAAyE,EACzE,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CACrE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,2FAA2F;IAC3F,GAAG,CAAC,IAAY;QACf,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAyB,EAAE,QAA4B;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,MAAM,EAAE,aAAa,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC3B,CAAC;IACF,CAAC;CACD"}
package/dist/config.d.ts CHANGED
@@ -52,7 +52,14 @@ export interface JwtConfig {
52
52
  * A guard entry in the AdonisJS-style config — an {@link AuthStrategy} instance,
53
53
  * built via {@link jwtGuard}/{@link sessionGuard}/{@link apiKeyGuard}. Named a
54
54
  * "factory" for AdonisJS symmetry (`sessionGuard({...})`), though Warden guards
55
- * are shared per-app instances (the per-request state lives on the Authenticator).
55
+ * are shared per-app instances rather than one built per request.
56
+ *
57
+ * Because the instance is shared, a guard must hold NO per-request state: the
58
+ * flags a request asks about — `viaRemember`, `attemptedViaRemember`,
59
+ * `isLoggedOut` — live on the per-request guard the Authenticator hands out
60
+ * (`auth.use(name)`), and a strategy method records into the state it is
61
+ * given. A flag stored on the strategy would answer the next request with the
62
+ * previous one's truth.
56
63
  */
57
64
  export type GuardFactory = AuthStrategy;
58
65
  /** Build a JWT guard from its config (AdonisJS `jwtGuard()` shape). */