@seamless-auth/express 0.3.5 → 0.4.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 (131) hide show
  1. package/README.md +1 -0
  2. package/dist/core/src/authFetch.d.ts +10 -0
  3. package/dist/core/src/authFetch.d.ts.map +1 -0
  4. package/dist/core/src/authMessaging.d.ts +98 -0
  5. package/dist/core/src/authMessaging.d.ts.map +1 -0
  6. package/dist/core/src/createServiceToken.d.ts +11 -0
  7. package/dist/core/src/createServiceToken.d.ts.map +1 -0
  8. package/dist/core/src/ensureCookies.d.ts +47 -0
  9. package/dist/core/src/ensureCookies.d.ts.map +1 -0
  10. package/dist/core/src/getSeamlessUser.d.ts +19 -0
  11. package/dist/core/src/getSeamlessUser.d.ts.map +1 -0
  12. package/dist/core/src/handlers/admin.d.ts +29 -0
  13. package/dist/core/src/handlers/admin.d.ts.map +1 -0
  14. package/dist/core/src/handlers/bootstrapAdminInvite.d.ts +18 -0
  15. package/dist/core/src/handlers/bootstrapAdminInvite.d.ts.map +1 -0
  16. package/dist/core/src/handlers/finishLogin.d.ts +25 -0
  17. package/dist/core/src/handlers/finishLogin.d.ts.map +1 -0
  18. package/dist/core/src/handlers/finishRegister.d.ts +25 -0
  19. package/dist/core/src/handlers/finishRegister.d.ts.map +1 -0
  20. package/dist/core/src/handlers/internalMetrics.d.ts +21 -0
  21. package/dist/core/src/handlers/internalMetrics.d.ts.map +1 -0
  22. package/dist/core/src/handlers/login.d.ts +27 -0
  23. package/dist/core/src/handlers/login.d.ts.map +1 -0
  24. package/dist/core/src/handlers/logout.d.ts +13 -0
  25. package/dist/core/src/handlers/logout.d.ts.map +1 -0
  26. package/dist/core/src/handlers/me.d.ts +17 -0
  27. package/dist/core/src/handlers/me.d.ts.map +1 -0
  28. package/dist/core/src/handlers/pollMagicLinkConfirmationHandler.d.ts +24 -0
  29. package/dist/core/src/handlers/pollMagicLinkConfirmationHandler.d.ts.map +1 -0
  30. package/dist/core/src/handlers/register.d.ts +24 -0
  31. package/dist/core/src/handlers/register.d.ts.map +1 -0
  32. package/dist/core/src/handlers/requestMagicLinkHandler.d.ts +15 -0
  33. package/dist/core/src/handlers/requestMagicLinkHandler.d.ts.map +1 -0
  34. package/dist/core/src/handlers/requestOtpHandler.d.ts +17 -0
  35. package/dist/core/src/handlers/requestOtpHandler.d.ts.map +1 -0
  36. package/dist/core/src/handlers/sessions.d.ts +15 -0
  37. package/dist/core/src/handlers/sessions.d.ts.map +1 -0
  38. package/dist/core/src/handlers/systemConfig.d.ts +16 -0
  39. package/dist/core/src/handlers/systemConfig.d.ts.map +1 -0
  40. package/dist/core/src/handlers/verifyLoginOtpHandler.d.ts +26 -0
  41. package/dist/core/src/handlers/verifyLoginOtpHandler.d.ts.map +1 -0
  42. package/dist/core/src/handlers/verifyMagicLinkHandler.d.ts +14 -0
  43. package/dist/core/src/handlers/verifyMagicLinkHandler.d.ts.map +1 -0
  44. package/dist/core/src/index.d.ts +19 -0
  45. package/dist/core/src/index.d.ts.map +1 -0
  46. package/dist/core/src/refreshAccessToken.d.ts +23 -0
  47. package/dist/core/src/refreshAccessToken.d.ts.map +1 -0
  48. package/dist/core/src/verifyCookieJwt.d.ts +3 -0
  49. package/dist/core/src/verifyCookieJwt.d.ts.map +1 -0
  50. package/dist/core/src/verifyRefreshCookie.d.ts +7 -0
  51. package/dist/core/src/verifyRefreshCookie.d.ts.map +1 -0
  52. package/dist/core/src/verifySignedAuthResponse.d.ts +2 -0
  53. package/dist/core/src/verifySignedAuthResponse.d.ts.map +1 -0
  54. package/dist/express/src/createServer.d.ts.map +1 -0
  55. package/dist/express/src/getSeamlessUser.d.ts.map +1 -0
  56. package/dist/express/src/handlers/admin.d.ts.map +1 -0
  57. package/dist/express/src/handlers/bootstrapAdmininvite.d.ts.map +1 -0
  58. package/dist/express/src/handlers/finishLogin.d.ts.map +1 -0
  59. package/dist/express/src/handlers/finishRegister.d.ts.map +1 -0
  60. package/dist/express/src/handlers/internalMetrics.d.ts.map +1 -0
  61. package/dist/express/src/handlers/login.d.ts.map +1 -0
  62. package/dist/express/src/handlers/logout.d.ts.map +1 -0
  63. package/dist/express/src/handlers/me.d.ts.map +1 -0
  64. package/dist/express/src/handlers/pollMagicLinkConfirmation.d.ts.map +1 -0
  65. package/dist/express/src/handlers/register.d.ts.map +1 -0
  66. package/dist/express/src/handlers/requestMagicLink.d.ts.map +1 -0
  67. package/dist/express/src/handlers/requestOtp.d.ts +7 -0
  68. package/dist/express/src/handlers/requestOtp.d.ts.map +1 -0
  69. package/dist/express/src/handlers/sessions.d.ts.map +1 -0
  70. package/dist/express/src/handlers/systemConfig.d.ts.map +1 -0
  71. package/dist/{handlers/requestOtp.d.ts → express/src/handlers/verifyLoginOtp.d.ts} +2 -3
  72. package/dist/express/src/handlers/verifyLoginOtp.d.ts.map +1 -0
  73. package/dist/express/src/index.d.ts.map +1 -0
  74. package/dist/express/src/internal/buildAuthorization.d.ts.map +1 -0
  75. package/dist/express/src/internal/buildForwardedClientIp.d.ts +3 -0
  76. package/dist/express/src/internal/buildForwardedClientIp.d.ts.map +1 -0
  77. package/dist/express/src/internal/cookie.d.ts.map +1 -0
  78. package/dist/express/src/internal/deliverAuthMessage.d.ts.map +1 -0
  79. package/dist/express/src/messaging.d.ts.map +1 -0
  80. package/dist/express/src/middleware/ensureCookies.d.ts.map +1 -0
  81. package/dist/express/src/middleware/requireAuth.d.ts.map +1 -0
  82. package/dist/express/src/middleware/requireRole.d.ts.map +1 -0
  83. package/dist/index.js +181 -41
  84. package/package.json +2 -2
  85. package/dist/createServer.d.ts.map +0 -1
  86. package/dist/getSeamlessUser.d.ts.map +0 -1
  87. package/dist/handlers/admin.d.ts.map +0 -1
  88. package/dist/handlers/bootstrapAdmininvite.d.ts.map +0 -1
  89. package/dist/handlers/finishLogin.d.ts.map +0 -1
  90. package/dist/handlers/finishRegister.d.ts.map +0 -1
  91. package/dist/handlers/internalMetrics.d.ts.map +0 -1
  92. package/dist/handlers/login.d.ts.map +0 -1
  93. package/dist/handlers/logout.d.ts.map +0 -1
  94. package/dist/handlers/me.d.ts.map +0 -1
  95. package/dist/handlers/pollMagicLinkConfirmation.d.ts.map +0 -1
  96. package/dist/handlers/register.d.ts.map +0 -1
  97. package/dist/handlers/requestMagicLink.d.ts.map +0 -1
  98. package/dist/handlers/requestOtp.d.ts.map +0 -1
  99. package/dist/handlers/sessions.d.ts.map +0 -1
  100. package/dist/handlers/systemConfig.d.ts.map +0 -1
  101. package/dist/index.d.ts.map +0 -1
  102. package/dist/internal/buildAuthorization.d.ts.map +0 -1
  103. package/dist/internal/cookie.d.ts.map +0 -1
  104. package/dist/internal/deliverAuthMessage.d.ts.map +0 -1
  105. package/dist/messaging.d.ts.map +0 -1
  106. package/dist/middleware/ensureCookies.d.ts.map +0 -1
  107. package/dist/middleware/requireAuth.d.ts.map +0 -1
  108. package/dist/middleware/requireRole.d.ts.map +0 -1
  109. /package/dist/{createServer.d.ts → express/src/createServer.d.ts} +0 -0
  110. /package/dist/{getSeamlessUser.d.ts → express/src/getSeamlessUser.d.ts} +0 -0
  111. /package/dist/{handlers → express/src/handlers}/admin.d.ts +0 -0
  112. /package/dist/{handlers → express/src/handlers}/bootstrapAdmininvite.d.ts +0 -0
  113. /package/dist/{handlers → express/src/handlers}/finishLogin.d.ts +0 -0
  114. /package/dist/{handlers → express/src/handlers}/finishRegister.d.ts +0 -0
  115. /package/dist/{handlers → express/src/handlers}/internalMetrics.d.ts +0 -0
  116. /package/dist/{handlers → express/src/handlers}/login.d.ts +0 -0
  117. /package/dist/{handlers → express/src/handlers}/logout.d.ts +0 -0
  118. /package/dist/{handlers → express/src/handlers}/me.d.ts +0 -0
  119. /package/dist/{handlers → express/src/handlers}/pollMagicLinkConfirmation.d.ts +0 -0
  120. /package/dist/{handlers → express/src/handlers}/register.d.ts +0 -0
  121. /package/dist/{handlers → express/src/handlers}/requestMagicLink.d.ts +0 -0
  122. /package/dist/{handlers → express/src/handlers}/sessions.d.ts +0 -0
  123. /package/dist/{handlers → express/src/handlers}/systemConfig.d.ts +0 -0
  124. /package/dist/{index.d.ts → express/src/index.d.ts} +0 -0
  125. /package/dist/{internal → express/src/internal}/buildAuthorization.d.ts +0 -0
  126. /package/dist/{internal → express/src/internal}/cookie.d.ts +0 -0
  127. /package/dist/{internal → express/src/internal}/deliverAuthMessage.d.ts +0 -0
  128. /package/dist/{messaging.d.ts → express/src/messaging.d.ts} +0 -0
  129. /package/dist/{middleware → express/src/middleware}/ensureCookies.d.ts +0 -0
  130. /package/dist/{middleware → express/src/middleware}/requireAuth.d.ts +0 -0
  131. /package/dist/{middleware → express/src/middleware}/requireRole.d.ts +0 -0
package/dist/index.js CHANGED
@@ -5,6 +5,11 @@ import cookieParser from "cookie-parser";
5
5
  // src/middleware/ensureCookies.ts
6
6
  import { ensureCookies } from "@seamless-auth/core";
7
7
 
8
+ // src/internal/buildForwardedClientIp.ts
9
+ function buildForwardedClientIp(req) {
10
+ return req.ip || void 0;
11
+ }
12
+
8
13
  // src/internal/cookie.ts
9
14
  import jwt from "jsonwebtoken";
10
15
  function setSessionCookie(res, opts, signer) {
@@ -60,7 +65,8 @@ function createEnsureCookiesMiddleware(opts) {
60
65
  serviceSecret: opts.serviceSecret,
61
66
  issuer: opts.issuer,
62
67
  audience: opts.audience,
63
- keyId: opts.keyId
68
+ keyId: opts.keyId,
69
+ forwardedClientIp: buildForwardedClientIp(req)
64
70
  }
65
71
  );
66
72
  applyResult(res, req, result, opts, cookieSigner);
@@ -107,7 +113,8 @@ async function login(req, res, opts) {
107
113
  {
108
114
  authServerUrl: opts.authServerUrl,
109
115
  cookieDomain: opts.cookieDomain,
110
- preAuthCookieName: opts.preAuthCookieName
116
+ preAuthCookieName: opts.preAuthCookieName,
117
+ forwardedClientIp: buildForwardedClientIp(req)
111
118
  }
112
119
  );
113
120
  if (!cookieSigner.secret) {
@@ -130,6 +137,9 @@ async function login(req, res, opts) {
130
137
  if (result.error) {
131
138
  return res.status(result.status).json(result.error);
132
139
  }
140
+ if (result.body) {
141
+ return res.status(result.status).json(result.body);
142
+ }
133
143
  res.status(result.status).end();
134
144
  }
135
145
 
@@ -162,7 +172,11 @@ async function finishLogin(req, res, opts) {
162
172
  };
163
173
  const authorization = buildServiceAuthorization(req, opts);
164
174
  const result = await finishLoginHandler(
165
- { body: req.body, authorization },
175
+ {
176
+ body: req.body,
177
+ authorization,
178
+ forwardedClientIp: buildForwardedClientIp(req)
179
+ },
166
180
  {
167
181
  authServerUrl: opts.authServerUrl,
168
182
  cookieDomain: opts.cookieDomain,
@@ -375,7 +389,8 @@ async function register(req, res, opts) {
375
389
  authServerUrl: opts.authServerUrl,
376
390
  cookieDomain: opts.cookieDomain,
377
391
  registrationCookieName: opts.registrationCookieName,
378
- externalDelivery: Boolean(opts.messaging)
392
+ externalDelivery: Boolean(opts.messaging),
393
+ forwardedClientIp: buildForwardedClientIp(req)
379
394
  }
380
395
  );
381
396
  if (!cookieSigner.secret) {
@@ -410,15 +425,17 @@ async function register(req, res, opts) {
410
425
 
411
426
  // src/handlers/requestOtp.ts
412
427
  import { requestOtpHandler } from "@seamless-auth/core/handlers/requestOtpHandler";
413
- async function requestOtp(req, res, opts, kind) {
428
+ async function requestOtp(req, res, opts, kind, flow = "registration") {
414
429
  const result = await requestOtpHandler(
415
430
  {
416
431
  kind,
432
+ flow,
417
433
  authorization: buildServiceAuthorization(req, opts)
418
434
  },
419
435
  {
420
436
  authServerUrl: opts.authServerUrl,
421
- externalDelivery: Boolean(opts.messaging)
437
+ externalDelivery: Boolean(opts.messaging),
438
+ forwardedClientIp: buildForwardedClientIp(req)
422
439
  }
423
440
  );
424
441
  if (result.error) {
@@ -434,6 +451,51 @@ async function requestOtp(req, res, opts, kind) {
434
451
  return res.status(result.status).json(result.body);
435
452
  }
436
453
 
454
+ // src/handlers/verifyLoginOtp.ts
455
+ import { verifyLoginOtpHandler } from "@seamless-auth/core/handlers/verifyLoginOtpHandler";
456
+ async function verifyLoginOtp(req, res, opts, kind) {
457
+ const cookieSigner = {
458
+ secret: opts.cookieSecret,
459
+ secure: process.env.NODE_ENV === "production",
460
+ sameSite: process.env.NODE_ENV === "production" ? "none" : "lax"
461
+ };
462
+ const result = await verifyLoginOtpHandler(
463
+ {
464
+ body: req.body,
465
+ authorization: buildServiceAuthorization(req, opts),
466
+ forwardedClientIp: buildForwardedClientIp(req),
467
+ kind
468
+ },
469
+ {
470
+ authServerUrl: opts.authServerUrl,
471
+ cookieDomain: opts.cookieDomain,
472
+ accessCookieName: opts.accessCookieName,
473
+ refreshCookieName: opts.refreshCookieName
474
+ }
475
+ );
476
+ if (!cookieSigner.secret) {
477
+ throw new Error("Missing COOKIE_SIGNING_KEY");
478
+ }
479
+ if (result.setCookies) {
480
+ for (const c of result.setCookies) {
481
+ setSessionCookie(
482
+ res,
483
+ {
484
+ name: c.name,
485
+ payload: c.value,
486
+ domain: c.domain,
487
+ ttlSeconds: c.ttl
488
+ },
489
+ cookieSigner
490
+ );
491
+ }
492
+ }
493
+ if (result.error) {
494
+ return res.status(result.status).json(result.error);
495
+ }
496
+ return res.status(result.status).json(result.body);
497
+ }
498
+
437
499
  // src/handlers/finishRegister.ts
438
500
  import { finishRegisterHandler } from "@seamless-auth/core/handlers/finishRegister";
439
501
  import { verifyCookieJwt } from "@seamless-auth/core";
@@ -460,7 +522,8 @@ async function finishRegister(req, res, opts) {
460
522
  {
461
523
  body: req.body,
462
524
  authorization,
463
- headers
525
+ headers,
526
+ forwardedClientIp: buildForwardedClientIp(req)
464
527
  },
465
528
  {
466
529
  authServerUrl: opts.authServerUrl,
@@ -499,7 +562,8 @@ async function me(req, res, opts) {
499
562
  const result = await meHandler({
500
563
  authServerUrl: opts.authServerUrl,
501
564
  preAuthCookieName: opts.preAuthCookieName,
502
- authorization
565
+ authorization,
566
+ forwardedClientIp: buildForwardedClientIp(req)
503
567
  });
504
568
  if (result.clearCookies) {
505
569
  for (const name of result.clearCookies) {
@@ -519,7 +583,8 @@ async function logout(req, res, opts) {
519
583
  authServerUrl: opts.authServerUrl,
520
584
  accessCookieName: opts.accessCookieName,
521
585
  registrationCookieName: opts.registrationCookieName,
522
- refreshCookieName: opts.refreshCookieName
586
+ refreshCookieName: opts.refreshCookieName,
587
+ forwardedClientIp: buildForwardedClientIp(req)
523
588
  });
524
589
  clearAllCookies(res, opts.cookieDomain || "", ...result.clearCookies);
525
590
  res.status(result.status).end();
@@ -535,7 +600,10 @@ async function pollMagicLinkConfirmation(req, res, opts) {
535
600
  };
536
601
  const authorization = buildServiceAuthorization(req, opts);
537
602
  const result = await pollMagicLinkConfirmationHandler(
538
- { authorization },
603
+ {
604
+ authorization,
605
+ forwardedClientIp: buildForwardedClientIp(req)
606
+ },
539
607
  {
540
608
  authServerUrl: opts.authServerUrl,
541
609
  cookieDomain: opts.cookieDomain,
@@ -575,7 +643,8 @@ async function requestMagicLink(req, res, opts) {
575
643
  },
576
644
  {
577
645
  authServerUrl: opts.authServerUrl,
578
- externalDelivery: Boolean(opts.messaging)
646
+ externalDelivery: Boolean(opts.messaging),
647
+ forwardedClientIp: buildForwardedClientIp(req)
579
648
  }
580
649
  );
581
650
  if (result.error) {
@@ -615,7 +684,8 @@ var getUsers = async (req, res, opts) => handle(
615
684
  res,
616
685
  await getUsersHandler({
617
686
  authServerUrl: opts.authServerUrl,
618
- authorization: buildServiceAuthorization(req, opts)
687
+ authorization: buildServiceAuthorization(req, opts),
688
+ forwardedClientIp: buildForwardedClientIp(req)
619
689
  })
620
690
  );
621
691
  var createUser = async (req, res, opts) => handle(
@@ -623,6 +693,7 @@ var createUser = async (req, res, opts) => handle(
623
693
  await createUserHandler({
624
694
  authServerUrl: opts.authServerUrl,
625
695
  authorization: buildServiceAuthorization(req, opts),
696
+ forwardedClientIp: buildForwardedClientIp(req),
626
697
  body: req.body
627
698
  })
628
699
  );
@@ -630,7 +701,8 @@ var deleteUser = async (req, res, opts) => handle(
630
701
  res,
631
702
  await deleteUserHandler({
632
703
  authServerUrl: opts.authServerUrl,
633
- authorization: buildServiceAuthorization(req, opts)
704
+ authorization: buildServiceAuthorization(req, opts),
705
+ forwardedClientIp: buildForwardedClientIp(req)
634
706
  })
635
707
  );
636
708
  var updateUser = async (req, res, opts) => handle(
@@ -638,6 +710,7 @@ var updateUser = async (req, res, opts) => handle(
638
710
  await updateUserHandler(req.params.userId, {
639
711
  authServerUrl: opts.authServerUrl,
640
712
  authorization: buildServiceAuthorization(req, opts),
713
+ forwardedClientIp: buildForwardedClientIp(req),
641
714
  body: req.body
642
715
  })
643
716
  );
@@ -645,14 +718,16 @@ var getUserDetail = async (req, res, opts) => handle(
645
718
  res,
646
719
  await getUserDetailHandler(req.params.userId, {
647
720
  authServerUrl: opts.authServerUrl,
648
- authorization: buildServiceAuthorization(req, opts)
721
+ authorization: buildServiceAuthorization(req, opts),
722
+ forwardedClientIp: buildForwardedClientIp(req)
649
723
  })
650
724
  );
651
725
  var getUserAnomalies = async (req, res, opts) => handle(
652
726
  res,
653
727
  await getUserAnomaliesHandler(req.params.userId, {
654
728
  authServerUrl: opts.authServerUrl,
655
- authorization: buildServiceAuthorization(req, opts)
729
+ authorization: buildServiceAuthorization(req, opts),
730
+ forwardedClientIp: buildForwardedClientIp(req)
656
731
  })
657
732
  );
658
733
  var getAuthEvents = async (req, res, opts) => handle(
@@ -660,6 +735,7 @@ var getAuthEvents = async (req, res, opts) => handle(
660
735
  await getAuthEventsHandler({
661
736
  authServerUrl: opts.authServerUrl,
662
737
  authorization: buildServiceAuthorization(req, opts),
738
+ forwardedClientIp: buildForwardedClientIp(req),
663
739
  query: req.query
664
740
  })
665
741
  );
@@ -667,7 +743,8 @@ var getCredentialCount = async (req, res, opts) => handle(
667
743
  res,
668
744
  await getCredentialCountHandler({
669
745
  authServerUrl: opts.authServerUrl,
670
- authorization: buildServiceAuthorization(req, opts)
746
+ authorization: buildServiceAuthorization(req, opts),
747
+ forwardedClientIp: buildForwardedClientIp(req)
671
748
  })
672
749
  );
673
750
  var listAllSessions = async (req, res, opts) => handle(
@@ -675,6 +752,7 @@ var listAllSessions = async (req, res, opts) => handle(
675
752
  await listAllSessionsHandler({
676
753
  authServerUrl: opts.authServerUrl,
677
754
  authorization: buildServiceAuthorization(req, opts),
755
+ forwardedClientIp: buildForwardedClientIp(req),
678
756
  query: req.query
679
757
  })
680
758
  );
@@ -682,21 +760,21 @@ var listUserSessions = async (req, res, opts) => handle(
682
760
  res,
683
761
  await listUserSessionsHandler(req.params.userId, {
684
762
  authServerUrl: opts.authServerUrl,
685
- authorization: buildServiceAuthorization(req, opts)
763
+ authorization: buildServiceAuthorization(req, opts),
764
+ forwardedClientIp: buildForwardedClientIp(req)
686
765
  })
687
766
  );
688
767
  var revokeAllUserSessions = async (req, res, opts) => handle(
689
768
  res,
690
769
  await revokeAllUserSessionsHandler(req.params.userId, {
691
770
  authServerUrl: opts.authServerUrl,
692
- authorization: buildServiceAuthorization(req, opts)
771
+ authorization: buildServiceAuthorization(req, opts),
772
+ forwardedClientIp: buildForwardedClientIp(req)
693
773
  })
694
774
  );
695
775
 
696
776
  // src/createServer.ts
697
- import {
698
- authFetch
699
- } from "@seamless-auth/core";
777
+ import { authFetch } from "@seamless-auth/core";
700
778
 
701
779
  // src/handlers/bootstrapAdmininvite.ts
702
780
  import { bootstrapAdminInviteHandler } from "@seamless-auth/core/handlers/bootstrapAdminInvite";
@@ -705,7 +783,8 @@ async function bootstrapAdminInvite(req, res, opts) {
705
783
  authServerUrl: opts.authServerUrl,
706
784
  email: req.body.email,
707
785
  authorization: req.headers["authorization"],
708
- externalDelivery: Boolean(opts.messaging)
786
+ externalDelivery: Boolean(opts.messaging),
787
+ forwardedClientIp: buildForwardedClientIp(req)
709
788
  });
710
789
  if (result.error) {
711
790
  return res.status(result.status).json({ error: result.error });
@@ -730,7 +809,8 @@ async function getAvailableRoles(req, res, opts) {
730
809
  const authorization = buildServiceAuthorization(req, opts);
731
810
  const result = await getAvailableRolesHandler({
732
811
  authServerUrl: opts.authServerUrl,
733
- authorization
812
+ authorization,
813
+ forwardedClientIp: buildForwardedClientIp(req)
734
814
  });
735
815
  if (result.error) {
736
816
  return res.status(result.status).json({ error: result.error });
@@ -741,7 +821,8 @@ async function getSystemConfigAdmin(req, res, opts) {
741
821
  const authorization = buildServiceAuthorization(req, opts);
742
822
  const result = await getSystemConfigAdminHandler({
743
823
  authServerUrl: opts.authServerUrl,
744
- authorization
824
+ authorization,
825
+ forwardedClientIp: buildForwardedClientIp(req)
745
826
  });
746
827
  if (result.error) {
747
828
  return res.status(result.status).json({ error: result.error });
@@ -753,7 +834,8 @@ async function updateSystemConfig(req, res, opts) {
753
834
  const result = await updateSystemConfigHandler({
754
835
  authServerUrl: opts.authServerUrl,
755
836
  authorization,
756
- payload: req.body
837
+ payload: req.body,
838
+ forwardedClientIp: buildForwardedClientIp(req)
757
839
  });
758
840
  if (result.error) {
759
841
  return res.status(result.status).json({ error: result.error });
@@ -781,6 +863,7 @@ async function getAuthEventSummary(req, res, opts) {
781
863
  const result = await getAuthEventSummaryHandler({
782
864
  authServerUrl: opts.authServerUrl,
783
865
  authorization,
866
+ forwardedClientIp: buildForwardedClientIp(req),
784
867
  query: req.query
785
868
  });
786
869
  return handle2(res, result);
@@ -790,6 +873,7 @@ async function getAuthEventTimeseries(req, res, opts) {
790
873
  const result = await getAuthEventTimeseriesHandler({
791
874
  authServerUrl: opts.authServerUrl,
792
875
  authorization,
876
+ forwardedClientIp: buildForwardedClientIp(req),
793
877
  query: req.query
794
878
  });
795
879
  return handle2(res, result);
@@ -798,7 +882,8 @@ async function getLoginStats(req, res, opts) {
798
882
  const authorization = buildServiceAuthorization(req, opts);
799
883
  const result = await getLoginStatsHandler({
800
884
  authServerUrl: opts.authServerUrl,
801
- authorization
885
+ authorization,
886
+ forwardedClientIp: buildForwardedClientIp(req)
802
887
  });
803
888
  return handle2(res, result);
804
889
  }
@@ -806,7 +891,8 @@ async function getSecurityAnomalies(req, res, opts) {
806
891
  const authorization = buildServiceAuthorization(req, opts);
807
892
  const result = await getSecurityAnomaliesHandler({
808
893
  authServerUrl: opts.authServerUrl,
809
- authorization
894
+ authorization,
895
+ forwardedClientIp: buildForwardedClientIp(req)
810
896
  });
811
897
  return handle2(res, result);
812
898
  }
@@ -814,7 +900,8 @@ async function getDashboardMetrics(req, res, opts) {
814
900
  const authorization = buildServiceAuthorization(req, opts);
815
901
  const result = await getDashboardMetricsHandler({
816
902
  authServerUrl: opts.authServerUrl,
817
- authorization
903
+ authorization,
904
+ forwardedClientIp: buildForwardedClientIp(req)
818
905
  });
819
906
  return handle2(res, result);
820
907
  }
@@ -822,7 +909,8 @@ async function getGroupedEventSummary(req, res, opts) {
822
909
  const authorization = buildServiceAuthorization(req, opts);
823
910
  const result = await getGroupedEventSummaryHandler({
824
911
  authServerUrl: opts.authServerUrl,
825
- authorization
912
+ authorization,
913
+ forwardedClientIp: buildForwardedClientIp(req)
826
914
  });
827
915
  return handle2(res, result);
828
916
  }
@@ -843,7 +931,8 @@ async function listSessions(req, res, opts) {
843
931
  const authorization = buildServiceAuthorization(req, opts);
844
932
  const result = await listSessionsHandler({
845
933
  authServerUrl: opts.authServerUrl,
846
- authorization
934
+ authorization,
935
+ forwardedClientIp: buildForwardedClientIp(req)
847
936
  });
848
937
  return handle3(res, result);
849
938
  }
@@ -851,7 +940,8 @@ async function revokeSession(req, res, opts) {
851
940
  const authorization = buildServiceAuthorization(req, opts);
852
941
  const result = await revokeSessionHandler(req.params.id, {
853
942
  authServerUrl: opts.authServerUrl,
854
- authorization
943
+ authorization,
944
+ forwardedClientIp: buildForwardedClientIp(req)
855
945
  });
856
946
  return handle3(res, result);
857
947
  }
@@ -859,12 +949,30 @@ async function revokeAllSessions(req, res, opts) {
859
949
  const authorization = buildServiceAuthorization(req, opts);
860
950
  const result = await revokeAllSessionsHandler({
861
951
  authServerUrl: opts.authServerUrl,
862
- authorization
952
+ authorization,
953
+ forwardedClientIp: buildForwardedClientIp(req)
863
954
  });
864
955
  return handle3(res, result);
865
956
  }
866
957
 
867
958
  // src/createServer.ts
959
+ function buildProxyQueryString(queryInput) {
960
+ const query = new URLSearchParams();
961
+ for (const [key, value] of Object.entries(queryInput)) {
962
+ if (typeof value === "string") {
963
+ query.append(key, value);
964
+ continue;
965
+ }
966
+ if (Array.isArray(value)) {
967
+ for (const item of value) {
968
+ if (typeof item === "string") {
969
+ query.append(key, item);
970
+ }
971
+ }
972
+ }
973
+ }
974
+ return query.toString();
975
+ }
868
976
  function createSeamlessAuthServer(opts) {
869
977
  const r = express.Router();
870
978
  r.use(express.json());
@@ -905,9 +1013,11 @@ function createSeamlessAuthServer(opts) {
905
1013
  return;
906
1014
  }
907
1015
  const authorization = buildServiceAuthorization(req, resolvedOpts);
908
- const options = method == "GET" ? { method, authorization } : { method, authorization, body: req.body };
1016
+ const forwardedClientIp = buildForwardedClientIp(req);
1017
+ const options = method == "GET" ? { method, authorization, forwardedClientIp } : { method, authorization, forwardedClientIp, body: req.body };
1018
+ const queryString = buildProxyQueryString(req.query);
909
1019
  const upstream = await authFetch(
910
- `${resolvedOpts.authServerUrl}/${path}`,
1020
+ `${resolvedOpts.authServerUrl}/${path}${queryString ? `?${queryString}` : ""}`,
911
1021
  options
912
1022
  );
913
1023
  const data = await upstream.json();
@@ -925,7 +1035,8 @@ function createSeamlessAuthServer(opts) {
925
1035
  serviceSecret: resolvedOpts.serviceSecret,
926
1036
  issuer: resolvedOpts.issuer,
927
1037
  audience: resolvedOpts.authServerUrl,
928
- keyId: resolvedOpts.jwksKid
1038
+ keyId: resolvedOpts.jwksKid,
1039
+ forwardedClientIp: void 0
929
1040
  })
930
1041
  );
931
1042
  r.post(
@@ -952,6 +1063,14 @@ function createSeamlessAuthServer(opts) {
952
1063
  "/otp/verify-email-otp",
953
1064
  proxyWithIdentity("otp/verify-email-otp", "preAuth")
954
1065
  );
1066
+ r.post(
1067
+ "/otp/verify-login-phone-otp",
1068
+ (req, res) => verifyLoginOtp(req, res, resolvedOpts, "phone")
1069
+ );
1070
+ r.post(
1071
+ "/otp/verify-login-email-otp",
1072
+ (req, res) => verifyLoginOtp(req, res, resolvedOpts, "email")
1073
+ );
955
1074
  r.get(
956
1075
  "/otp/generate-phone-otp",
957
1076
  (req, res) => requestOtp(req, res, resolvedOpts, "phone")
@@ -960,6 +1079,14 @@ function createSeamlessAuthServer(opts) {
960
1079
  "/otp/generate-email-otp",
961
1080
  (req, res) => requestOtp(req, res, resolvedOpts, "email")
962
1081
  );
1082
+ r.get(
1083
+ "/otp/generate-login-phone-otp",
1084
+ (req, res) => requestOtp(req, res, resolvedOpts, "phone", "login")
1085
+ );
1086
+ r.get(
1087
+ "/otp/generate-login-email-otp",
1088
+ (req, res) => requestOtp(req, res, resolvedOpts, "email", "login")
1089
+ );
963
1090
  r.post("/login", (req, res) => login(req, res, resolvedOpts));
964
1091
  r.post(
965
1092
  "/registration/register",
@@ -967,6 +1094,18 @@ function createSeamlessAuthServer(opts) {
967
1094
  );
968
1095
  r.get("/users/me", (req, res) => me(req, res, resolvedOpts));
969
1096
  r.get("/logout", (req, res) => logout(req, res, resolvedOpts));
1097
+ r.get(
1098
+ "/step-up/status",
1099
+ proxyWithIdentity("step-up/status", "access", "GET")
1100
+ );
1101
+ r.post(
1102
+ "/step-up/webauthn/start",
1103
+ proxyWithIdentity("step-up/webauthn/start", "access")
1104
+ );
1105
+ r.post(
1106
+ "/step-up/webauthn/finish",
1107
+ proxyWithIdentity("step-up/webauthn/finish", "access")
1108
+ );
970
1109
  r.post("/users/update", proxyWithIdentity("users/update", "access"));
971
1110
  r.post(
972
1111
  "/users/credentials",
@@ -976,14 +1115,14 @@ function createSeamlessAuthServer(opts) {
976
1115
  "/users/credentials",
977
1116
  proxyWithIdentity("users/credentials", "access")
978
1117
  );
979
- r.get(
980
- "/magic-link",
981
- (req, res) => requestMagicLink(req, res, resolvedOpts)
982
- );
1118
+ r.get("/magic-link", (req, res) => requestMagicLink(req, res, resolvedOpts));
983
1119
  r.get("/magic-link/verify/:token", async (req, res) => {
984
1120
  const upstream = await authFetch(
985
1121
  `${resolvedOpts.authServerUrl}/magic-link/verify/${req.params.token}`,
986
- { method: "GET" }
1122
+ {
1123
+ method: "GET",
1124
+ forwardedClientIp: buildForwardedClientIp(req)
1125
+ }
987
1126
  );
988
1127
  const data = await upstream.json();
989
1128
  res.status(upstream.status).json(data);
@@ -1166,7 +1305,8 @@ async function getSeamlessUser(req, opts) {
1166
1305
  authServerUrl: opts.authServerUrl,
1167
1306
  cookieSecret: opts.cookieSecret,
1168
1307
  cookieName: opts.accessCookieName ?? "seamless-access",
1169
- authorization
1308
+ authorization,
1309
+ forwardedClientIp: buildForwardedClientIp(req)
1170
1310
  });
1171
1311
  }
1172
1312
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamless-auth/express",
3
- "version": "0.3.5",
3
+ "version": "0.4.0",
4
4
  "description": "Express adapter for Seamless Auth passwordless authentication",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",
@@ -39,7 +39,7 @@
39
39
  "express": ">=4.18.0"
40
40
  },
41
41
  "dependencies": {
42
- "@seamless-auth/core": "^0.4.5",
42
+ "@seamless-auth/core": "^0.5.0",
43
43
  "cookie-parser": "^1.4.6",
44
44
  "jsonwebtoken": "^9.0.3"
45
45
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../src/createServer.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAI7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAqDhE,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,4BAA4B,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,yBAAyB,GAC9B,MAAM,CAkPR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSeamlessUser.d.ts","sourceRoot":"","sources":["../src/getSeamlessUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,yBAAyB,gBAUhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/handlers/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAgB5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAS5D,eAAO,MAAM,QAAQ,GACnB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAQ9B,CAAC;AAEJ,eAAO,MAAM,UAAU,GACrB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAS9B,CAAC;AAEJ,eAAO,MAAM,UAAU,GACrB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAQ9B,CAAC;AAEJ,eAAO,MAAM,UAAU,GACrB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAS9B,CAAC;AAEJ,eAAO,MAAM,aAAa,GACxB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAQ9B,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAQ9B,CAAC;AAEJ,eAAO,MAAM,aAAa,GACxB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAS9B,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAC7B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAQ9B,CAAC;AAEJ,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAS9B,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAQ9B,CAAC;AAEJ,eAAO,MAAM,qBAAqB,GAChC,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,yBAAyB,gDAQ9B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrapAdmininvite.d.ts","sourceRoot":"","sources":["../../src/handlers/bootstrapAdmininvite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAsBhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"finishLogin.d.ts","sourceRoot":"","sources":["../../src/handlers/finishLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,GAAG;IAAE,aAAa,CAAC,EAAE,GAAG,CAAA;CAAE,EACtC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DA+ChC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"finishRegister.d.ts","sourceRoot":"","sources":["../../src/handlers/finishRegister.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,GAAG;IAAE,aAAa,CAAC,EAAE,GAAG,CAAA;CAAE,EACtC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAkEhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"internalMetrics.d.ts","sourceRoot":"","sources":["../../src/handlers/internalMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAW5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAS5D,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAWhC;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAWhC;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAUhC;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAUhC;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAUhC;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAUhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/handlers/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,KAAK,CACzB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DA4ChC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/handlers/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,MAAM,CAC1B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,iBAYhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../src/handlers/me.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,EAAE,CACtB,GAAG,EAAE,OAAO,GAAG;IAAE,aAAa,CAAC,EAAE,GAAG,CAAA;CAAE,EACtC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAoBhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pollMagicLinkConfirmation.d.ts","sourceRoot":"","sources":["../../src/handlers/pollMagicLinkConfirmation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,OAAO,GAAG;IAAE,aAAa,CAAC,EAAE,GAAG,CAAA;CAAE,EACtC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAgDhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/handlers/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAqDhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestMagicLink.d.ts","sourceRoot":"","sources":["../../src/handlers/requestMagicLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,GAAG;IAAE,aAAa,CAAC,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,EAClD,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAyBhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestOtp.d.ts","sourceRoot":"","sources":["../../src/handlers/requestOtp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,GAAG;IAAE,aAAa,CAAC,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,EAClD,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,EAC/B,IAAI,EAAE,OAAO,GAAG,OAAO,+CA0BxB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/handlers/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQ5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAS5D,wBAAsB,YAAY,CAChC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAUhC;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAUhC;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,+CAUhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"systemConfig.d.ts","sourceRoot":"","sources":["../../src/handlers/systemConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQ5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAchC;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAchC;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,yBAAyB,2DAehC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,4BAA4B,EAC5B,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAe,wBAAwB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildAuthorization.d.ts","sourceRoot":"","sources":["../../src/internal/buildAuthorization.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,GAAG;IAAE,aAAa,CAAC,EAAE,GAAG,CAAA;CAAE,EACtC,IAAI,EAAE,yBAAyB,sBAiBhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../src/internal/cookie.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,mBAAmB,QAe5B;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,QAGb;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,WAAW,EAAE,MAAM,EAAE,QAKzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deliverAuthMessage.d.ts","sourceRoot":"","sources":["../../src/internal/deliverAuthMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAEvB,4BAA4B,EAE7B,MAAM,cAAc,CAAC;AA2HtB,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,4BAA4B,GAAG,SAAS,EACnD,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,OAAO,CAAC,IAAI,CAAC,CA2Ef;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAG5F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../src/messaging.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureCookies.d.ts","sourceRoot":"","sources":["../../src/middleware/ensureCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK1D,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,8BAA8B,IAmBlC,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,mBA0BrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requireAuth.d.ts","sourceRoot":"","sources":["../../src/middleware/requireAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,IAOjC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAoCjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requireRole.d.ts","sourceRoot":"","sources":["../../src/middleware/requireRole.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAiC5E"}