@nxgt/janus 0.16.1 → 0.17.0

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 (65) hide show
  1. package/README.md +99 -11
  2. package/dist/auth/config/index.d.ts +1 -1
  3. package/dist/auth/config/index.d.ts.map +1 -1
  4. package/dist/auth/config/janus-config.d.ts +24 -3
  5. package/dist/auth/config/janus-config.d.ts.map +1 -1
  6. package/dist/auth/config/resolve-config.d.ts.map +1 -1
  7. package/dist/auth/config/resolve-devices.d.ts +5 -0
  8. package/dist/auth/config/resolve-devices.d.ts.map +1 -0
  9. package/dist/auth/config/resolved-config.d.ts +4 -0
  10. package/dist/auth/config/resolved-config.d.ts.map +1 -1
  11. package/dist/auth/devices/hint.d.ts +30 -0
  12. package/dist/auth/devices/hint.d.ts.map +1 -0
  13. package/dist/auth/devices/index.d.ts +10 -0
  14. package/dist/auth/devices/index.d.ts.map +1 -0
  15. package/dist/auth/devices/report.d.ts +11 -0
  16. package/dist/auth/devices/report.d.ts.map +1 -0
  17. package/dist/auth/devices/token.d.ts +13 -0
  18. package/dist/auth/devices/token.d.ts.map +1 -0
  19. package/dist/auth/email-sign-in.d.ts +4 -2
  20. package/dist/auth/email-sign-in.d.ts.map +1 -1
  21. package/dist/auth/events.d.ts +18 -5
  22. package/dist/auth/events.d.ts.map +1 -1
  23. package/dist/auth/index.d.ts +2 -2
  24. package/dist/auth/index.d.ts.map +1 -1
  25. package/dist/auth/magic-link.d.ts.map +1 -1
  26. package/dist/auth/second-factor/challenge.d.ts +2 -2
  27. package/dist/auth/second-factor/challenge.d.ts.map +1 -1
  28. package/dist/auth/second-factor/flows.d.ts +6 -4
  29. package/dist/auth/second-factor/flows.d.ts.map +1 -1
  30. package/dist/auth/second-factor/recovery.d.ts +6 -2
  31. package/dist/auth/second-factor/recovery.d.ts.map +1 -1
  32. package/dist/auth/sessions/open-session.d.ts +7 -1
  33. package/dist/auth/sessions/open-session.d.ts.map +1 -1
  34. package/dist/auth/sign-in-code.d.ts.map +1 -1
  35. package/dist/auth/types/email-flows.d.ts +2 -2
  36. package/dist/auth/types/email-flows.d.ts.map +1 -1
  37. package/dist/auth/types/index.d.ts +1 -1
  38. package/dist/auth/types/index.d.ts.map +1 -1
  39. package/dist/auth/types/magic-link.d.ts +2 -2
  40. package/dist/auth/types/magic-link.d.ts.map +1 -1
  41. package/dist/auth/types/password.d.ts +10 -3
  42. package/dist/auth/types/password.d.ts.map +1 -1
  43. package/dist/auth/types/second-factor.d.ts +6 -3
  44. package/dist/auth/types/second-factor.d.ts.map +1 -1
  45. package/dist/auth/types/sign-in.d.ts +32 -0
  46. package/dist/auth/types/sign-in.d.ts.map +1 -1
  47. package/dist/auth/users/flow-types.d.ts +2 -1
  48. package/dist/auth/users/flow-types.d.ts.map +1 -1
  49. package/dist/auth/users/password-flows.d.ts.map +1 -1
  50. package/dist/auth/users/sign-in.d.ts +5 -1
  51. package/dist/auth/users/sign-in.d.ts.map +1 -1
  52. package/dist/index.js +172 -73
  53. package/dist/index.js.map +19 -15
  54. package/docs/README.md +2 -1
  55. package/docs/guide/devices.md +428 -0
  56. package/docs/guide/events.md +53 -8
  57. package/docs/guide/magic-link.md +25 -3
  58. package/docs/guide/second-factor.md +30 -5
  59. package/docs/guide/sessions.md +8 -0
  60. package/docs/guide/sign-in-code.md +22 -3
  61. package/docs/guide/users.md +3 -2
  62. package/docs/guide/vocabulary.md +4 -3
  63. package/docs/roadmap.md +12 -8
  64. package/docs/troubleshooting.md +210 -4
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"open-session.d.ts","sourceRoot":"","sources":["../../../src/auth/sessions/open-session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAElD,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGxD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,UAAU,GACd,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAoB5B"}
1
+ {"version":3,"file":"open-session.d.ts","sourceRoot":"","sources":["../../../src/auth/sessions/open-session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAElD,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGxD;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,EAClB,MAAM,UAAQ,GACZ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAqB5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in-code.d.ts","sourceRoot":"","sources":["../../src/auth/sign-in-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,WAAW,CAAC;AAC3E,OAAO,EACN,KAAK,MAAM,EAIX,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,EAAc,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,GACZ,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAU7D"}
1
+ {"version":3,"file":"sign-in-code.d.ts","sourceRoot":"","sources":["../../src/auth/sign-in-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,WAAW,CAAC;AAE3E,OAAO,EACN,KAAK,MAAM,EAIX,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,EAEX,aAAa,EAEb,YAAY,EACZ,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,GACZ,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAgB7D"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Part of what `janus()` hands back; `./index` gathers it.
6
6
  */
7
- import type { SignedIn } from './sign-in';
7
+ import type { SignedIn, SignInOptions } from './sign-in';
8
8
  import type { UserRef } from './user';
9
9
  /** A one-time token, given to the application once, to send by e-mail. */
10
10
  export interface IssuedToken {
@@ -62,7 +62,7 @@ export interface SignInCodeApi<U, Answer = SignedIn<U>> {
62
62
  * or `TOKEN_EXPIRED`; an e-mail the user changed since is `TOKEN_STALE`;
63
63
  * an inactive user is `USER_INACTIVE`.
64
64
  */
65
- confirm(challenge: string, code: string): Promise<Answer>;
65
+ confirm(challenge: string, code: string, options?: SignInOptions): Promise<Answer>;
66
66
  };
67
67
  }
68
68
  /** What a user type with an e-mail answers besides. */
@@ -1 +1 @@
1
- {"version":3,"file":"email-flows.d.ts","sourceRoot":"","sources":["../../../src/auth/types/email-flows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CACzB;AAED,oFAAoF;AACpF,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE;QACpB;;;;;;;;;;WAUG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KAC1D,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE;QACrB,yEAAyE;QACzE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C;;;WAGG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;KACnC,CAAC;CACF;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE;QACvB;;;;;WAKG;QACH,OAAO,CACN,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,WAAW,GAAG;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD;;;;;;WAMG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;KACrD,CAAC;CACF"}
1
+ {"version":3,"file":"email-flows.d.ts","sourceRoot":"","sources":["../../../src/auth/types/email-flows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAgB,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CACzB;AAED,oFAAoF;AACpF,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE;QACpB;;;;;;;;;;WAUG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD;;;;;;;;;;;;WAYG;QACH,OAAO,CACN,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAAC;KACnB,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE;QACrB,yEAAyE;QACzE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C;;;WAGG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;KACnC,CAAC;CACF;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE;QACvB;;;;;WAKG;QACH,OAAO,CACN,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,WAAW,GAAG;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD;;;;;;WAMG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;KACrD,CAAC;CACF"}
@@ -15,7 +15,7 @@ export type { MagicLinkApi } from './magic-link';
15
15
  export type { PasswordApi } from './password';
16
16
  export type { RecoveredSignIn, RecoveryCodesIssued, SecondFactorApi, SecondFactorEnrolment, } from './second-factor';
17
17
  export type { Authenticated, HeaderRecord, RequestLike, Session, } from './session';
18
- export type { SecondFactorRequired, SignedIn, SignInResult, } from './sign-in';
18
+ export type { SecondFactorRequired, SignedIn, SignInOptions, SignInResult, } from './sign-in';
19
19
  export type { StepUpApi, StepUpByApp, StepUpByEmail } from './step-up';
20
20
  export type { User, UserBase, UserRef, WriteOptions } from './user';
21
21
  export type { UserTypeApi } from './user-type';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,cAAc,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACX,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,OAAO,EACP,MAAM,GACN,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EACX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,GACP,MAAM,WAAW,CAAC;AACnB,YAAY,EACX,oBAAoB,EACpB,QAAQ,EACR,YAAY,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,cAAc,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACX,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,OAAO,EACP,MAAM,GACN,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EACX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,GACP,MAAM,WAAW,CAAC;AACnB,YAAY,EACX,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,YAAY,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Part of what `janus()` hands back; `./index` gathers it.
6
6
  */
7
7
  import type { IssuedToken } from './email-flows';
8
- import type { SignedIn } from './sign-in';
8
+ import type { SignedIn, SignInOptions } from './sign-in';
9
9
  /**
10
10
  * Signing in with a link sent to the user's e-mail, no password needed —
11
11
  * a sign-in code with nothing to type.
@@ -44,7 +44,7 @@ export interface MagicLinkApi<U, Answer = SignedIn<U>> {
44
44
  * `USER_INACTIVE`. The first call spends the token, whether it signs
45
45
  * in or is refused.
46
46
  */
47
- confirm(token: string): Promise<Answer>;
47
+ confirm(token: string, options?: SignInOptions): Promise<Answer>;
48
48
  };
49
49
  }
50
50
  //# sourceMappingURL=magic-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"magic-link.d.ts","sourceRoot":"","sources":["../../../src/auth/types/magic-link.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE;QACnB;;;;;;;;;;WAUG;QACH,OAAO,CACN,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,WAAW,GAAG;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD;;;;;;;;;;;;;;WAcG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACxC,CAAC;CACF"}
1
+ {"version":3,"file":"magic-link.d.ts","sourceRoot":"","sources":["../../../src/auth/types/magic-link.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE;QACnB;;;;;;;;;;WAUG;QACH,OAAO,CACN,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,WAAW,GAAG;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD;;;;;;;;;;;;;;WAcG;QACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACjE,CAAC;CACF"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Part of what `janus()` hands back; `./index` gathers it.
6
6
  */
7
- import type { SignedIn } from './sign-in';
7
+ import type { SignedIn, SignInOptions } from './sign-in';
8
8
  import type { UserRef, WriteOptions } from './user';
9
9
  /**
10
10
  * What a user type that signs in with a password answers besides.
@@ -18,10 +18,13 @@ export interface PasswordApi<U, In, Login extends string, Answer = SignedIn<U>>
18
18
  *
19
19
  * Rejects with `USER_INVALID`, `PASSWORD_TOO_SHORT`, `LOGIN_TAKEN`, or
20
20
  * `STORE_FAILED`.
21
+ *
22
+ * Given a `device`, mints the user's first device token: the device they
23
+ * signed up on is known from the start, and never reported as new.
21
24
  */
22
25
  signUp(input: In & {
23
26
  readonly password: string;
24
- }): Promise<SignedIn<U>>;
27
+ }, options?: SignInOptions): Promise<SignedIn<U>>;
25
28
  /**
26
29
  * Checks the password and opens a session.
27
30
  *
@@ -44,12 +47,16 @@ export interface PasswordApi<U, In, Login extends string, Answer = SignedIn<U>>
44
47
  * With a `secondFactor` configured, a user whose factor is active gets no
45
48
  * session yet: `{ status: 'secondFactor', challenge }`, for
46
49
  * `secondFactor.confirm`. Switch on `status`.
50
+ *
51
+ * Given a `device`, answers `newDevice` and `deviceToken`, and sends
52
+ * `user.newDeviceSignedIn` for a device new to the user. A challenge
53
+ * carries no device: give it again to `secondFactor.confirm`.
47
54
  */
48
55
  signIn(input: {
49
56
  readonly [K in Login]: string;
50
57
  } & {
51
58
  readonly password: string;
52
- }): Promise<Answer>;
59
+ }, options?: SignInOptions): Promise<Answer>;
53
60
  /** The user holding this login, normalised as sign-up normalised it, or `null`. */
54
61
  findByLogin(login: string): Promise<U | null>;
55
62
  /** Sets or replaces the password — an admin's call. `PASSWORD_TOO_SHORT` below the policy. */
@@ -1 +1 @@
1
- {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../src/auth/types/password.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAC3B,CAAC,EACD,EAAE,EACF,KAAK,SAAS,MAAM,EACpB,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEpB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CACL,KAAK,EAAE;QAAE,QAAQ,EAAE,CAAC,IAAI,KAAK,GAAG,MAAM;KAAE,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,mFAAmF;IACnF,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE9C,8FAA8F;IAC9F,WAAW,CACV,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd;;;;OAIG;IACH,cAAc,CACb,IAAI,EAAE,OAAO,EACb,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAC3D,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CAAC;CACd"}
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../src/auth/types/password.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAgB,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAC3B,CAAC,EACD,EAAE,EACF,KAAK,SAAS,MAAM,EACpB,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEpB;;;;;;;;OAQG;IACH,MAAM,CACL,KAAK,EAAE,EAAE,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EACzC,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CACL,KAAK,EAAE;QAAE,QAAQ,EAAE,CAAC,IAAI,KAAK,GAAG,MAAM;KAAE,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EACxE,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,mFAAmF;IACnF,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE9C,8FAA8F;IAC9F,WAAW,CACV,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd;;;;OAIG;IACH,cAAc,CACb,IAAI,EAAE,OAAO,EACb,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAC3D,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CAAC;CACd"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Part of what `janus()` hands back; `./index` gathers it.
7
7
  */
8
- import type { SignedIn } from './sign-in';
8
+ import type { SignedIn, SignInOptions } from './sign-in';
9
9
  import type { UserRef, WriteOptions } from './user';
10
10
  /** What `secondFactor.enroll` answers: show both, keep neither. */
11
11
  export interface SecondFactorEnrolment {
@@ -75,8 +75,11 @@ export interface SecondFactorApi<U> {
75
75
  * A code is accepted once, so a replay is `CODE_INVALID` too. An unknown,
76
76
  * spent or lapsed challenge is `TOKEN_UNKNOWN`, `TOKEN_SPENT` or
77
77
  * `TOKEN_EXPIRED`: sign in again.
78
+ *
79
+ * The `device` given to `signIn` is not carried by the challenge: give
80
+ * it here again.
78
81
  */
79
- confirm(challenge: string, code: string): Promise<SignedIn<U>>;
82
+ confirm(challenge: string, code: string, options?: SignInOptions): Promise<SignedIn<U>>;
80
83
  /**
81
84
  * Redeems `signIn`'s challenge with a **recovery code** instead of the
82
85
  * app's, for a user whose phone is gone, and opens the session. The
@@ -88,7 +91,7 @@ export interface SecondFactorApi<U> {
88
91
  * two sign-ins at once opens one session, and the other call is
89
92
  * `VERSION_CONFLICT`.
90
93
  */
91
- recover(challenge: string, code: string): Promise<RecoveredSignIn<U>>;
94
+ recover(challenge: string, code: string, options?: SignInOptions): Promise<RecoveredSignIn<U>>;
92
95
  /**
93
96
  * How many recovery codes the user still holds — what `recover`
94
97
  * answered as `recoveryCodesLeft`, read again for whoever did not see
@@ -1 +1 @@
1
- {"version":3,"file":"second-factor.d.ts","sourceRoot":"","sources":["../../../src/auth/types/second-factor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEpD,mEAAmE;AACnE,MAAM,WAAW,qBAAqB;IACrC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qFAAqF;AACrF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAC9C,oFAAoF;IACpF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE;QACtB;;;;WAIG;QACH,MAAM,CACL,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAClC;;;;;WAKG;QACH,QAAQ,CACP,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC;;;;;;;;;;;WAWG;QACH,uBAAuB,CACtB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,2GAA2G;QAC3G,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D;;;;;;;;WAQG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D;;;;;;;;;;WAUG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE;;;;;;;WAOG;QACH,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KACzD,CAAC;CACF"}
1
+ {"version":3,"file":"second-factor.d.ts","sourceRoot":"","sources":["../../../src/auth/types/second-factor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEpD,mEAAmE;AACnE,MAAM,WAAW,qBAAqB;IACrC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qFAAqF;AACrF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAC9C,oFAAoF;IACpF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE;QACtB;;;;WAIG;QACH,MAAM,CACL,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAClC;;;;;WAKG;QACH,QAAQ,CACP,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC;;;;;;;;;;;WAWG;QACH,uBAAuB,CACtB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,2GAA2G;QAC3G,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D;;;;;;;;;;;WAWG;QACH,OAAO,CACN,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB;;;;;;;;;;WAUG;QACH,OAAO,CACN,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B;;;;;;;WAOG;QACH,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;KACzD,CAAC;CACF"}
@@ -16,6 +16,38 @@ export interface SignedIn<U> {
16
16
  readonly user: U;
17
17
  readonly session: Session;
18
18
  readonly token: string;
19
+ /**
20
+ * Whether the session was opened from a device the user had not signed in
21
+ * from: the `device` given held no token, or one that did not prove this
22
+ * user signed in there before. Then `user.newDeviceSignedIn` was sent too.
23
+ * **`false` without a `device`**, and always on `signUp`.
24
+ */
25
+ readonly newDevice: boolean;
26
+ /**
27
+ * The device token for the client to keep — in a long-lived cookie — and
28
+ * to present as `device` at its next sign-in: the one it presented, a
29
+ * fresh one for a new device, or the same device signed again with the
30
+ * first key. **`null` without a `device`**: nothing is minted then.
31
+ */
32
+ readonly deviceToken: string | null;
33
+ }
34
+ /**
35
+ * What a sign-in takes besides its credentials: `signUp`, `signIn`,
36
+ * `secondFactor.confirm`, `secondFactor.recover`, `signInCode.confirm` and
37
+ * `magicLink.confirm`.
38
+ */
39
+ export interface SignInOptions {
40
+ /**
41
+ * The device token the client holds — the `deviceToken` an earlier
42
+ * sign-in answered — or `null` when it holds none yet. Absent, devices
43
+ * are not tracked for this call: `newDevice` is `false`, `deviceToken`
44
+ * `null`, and no event is sent. **Requires `janus({ devices })`.**
45
+ *
46
+ * A sign-in answering a second-factor challenge carries nothing to its
47
+ * confirmation: give the device again to `secondFactor.confirm` or
48
+ * `recover`.
49
+ */
50
+ readonly device?: string | null;
19
51
  }
20
52
  /**
21
53
  * The password was right, and the user has a second factor: no session yet.
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../../src/auth/types/sign-in.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../../src/auth/types/sign-in.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC"}
@@ -3,10 +3,11 @@
3
3
  * sign-in finishes.
4
4
  */
5
5
  import type { AnyUser } from '../context';
6
+ import type { DeviceHint } from '../devices';
6
7
  import type { UserRecord } from '../port/types';
7
8
  import type { SignInResult } from '../types';
8
9
  /** A user's fields as a flow receives them, before any schema read them. */
9
10
  export type Input = Record<string, unknown>;
10
11
  /** What a sign-in answers once the user proved who they are: `secondFactorFlows`'s `finish`. */
11
- export type Finish = (record: UserRecord, where: string) => Promise<SignInResult<AnyUser>>;
12
+ export type Finish = (record: UserRecord, where: string, device: DeviceHint) => Promise<SignInResult<AnyUser>>;
12
13
  //# sourceMappingURL=flow-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow-types.d.ts","sourceRoot":"","sources":["../../../src/auth/users/flow-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,gGAAgG;AAChG,MAAM,MAAM,MAAM,GAAG,CACpB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,KACT,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"flow-types.d.ts","sourceRoot":"","sources":["../../../src/auth/users/flow-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,gGAAgG;AAChG,MAAM,MAAM,MAAM,GAAG,CACpB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,UAAU,KACd,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"password-flows.d.ts","sourceRoot":"","sources":["../../../src/auth/users/password-flows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,OAAO,EAMZ,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAIlD;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,GACZ,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CA+C5D"}
1
+ {"version":3,"file":"password-flows.d.ts","sourceRoot":"","sources":["../../../src/auth/users/password-flows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,OAAO,EAMZ,MAAM,YAAY,CAAC;AAIpB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAIlD;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,GACZ,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAkD5D"}
@@ -1,5 +1,6 @@
1
1
  import type { ResolvedType } from '../config';
2
2
  import { type AnyUser, type Context } from '../context';
3
+ import { type DeviceHint } from '../devices';
3
4
  import type { SignInResult } from '../types';
4
5
  import type { Finish, Input } from './flow-types';
5
6
  /**
@@ -7,5 +8,8 @@ import type { Finish, Input } from './flow-types';
7
8
  * refusal for an unknown login, no password, a wrong one and a login past
8
9
  * its attempts; `USER_INACTIVE` only once the password matched.
9
10
  */
10
- export declare function signIn(context: Context, type: ResolvedType, finish: Finish, input: Input, where: string): Promise<SignInResult<AnyUser>>;
11
+ export declare function signIn(context: Context, type: ResolvedType, finish: Finish, input: Input, call: {
12
+ readonly where: string;
13
+ readonly device: DeviceHint;
14
+ }): Promise<SignInResult<AnyUser>>;
11
15
  //# sourceMappingURL=sign-in.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../../src/auth/users/sign-in.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,MAAM,YAAY,CAAC;AAIpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAElD;;;;GAIG;AACH,wBAAsB,MAAM,CAC3B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAgEhC"}
1
+ {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../../src/auth/users/sign-in.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,YAAY,CAAC;AAI9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAElD;;;;GAIG;AACH,wBAAsB,MAAM,CAC3B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC3D,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAmEhC"}