@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.
- package/README.md +1 -0
- package/dist/core/src/authFetch.d.ts +10 -0
- package/dist/core/src/authFetch.d.ts.map +1 -0
- package/dist/core/src/authMessaging.d.ts +98 -0
- package/dist/core/src/authMessaging.d.ts.map +1 -0
- package/dist/core/src/createServiceToken.d.ts +11 -0
- package/dist/core/src/createServiceToken.d.ts.map +1 -0
- package/dist/core/src/ensureCookies.d.ts +47 -0
- package/dist/core/src/ensureCookies.d.ts.map +1 -0
- package/dist/core/src/getSeamlessUser.d.ts +19 -0
- package/dist/core/src/getSeamlessUser.d.ts.map +1 -0
- package/dist/core/src/handlers/admin.d.ts +29 -0
- package/dist/core/src/handlers/admin.d.ts.map +1 -0
- package/dist/core/src/handlers/bootstrapAdminInvite.d.ts +18 -0
- package/dist/core/src/handlers/bootstrapAdminInvite.d.ts.map +1 -0
- package/dist/core/src/handlers/finishLogin.d.ts +25 -0
- package/dist/core/src/handlers/finishLogin.d.ts.map +1 -0
- package/dist/core/src/handlers/finishRegister.d.ts +25 -0
- package/dist/core/src/handlers/finishRegister.d.ts.map +1 -0
- package/dist/core/src/handlers/internalMetrics.d.ts +21 -0
- package/dist/core/src/handlers/internalMetrics.d.ts.map +1 -0
- package/dist/core/src/handlers/login.d.ts +27 -0
- package/dist/core/src/handlers/login.d.ts.map +1 -0
- package/dist/core/src/handlers/logout.d.ts +13 -0
- package/dist/core/src/handlers/logout.d.ts.map +1 -0
- package/dist/core/src/handlers/me.d.ts +17 -0
- package/dist/core/src/handlers/me.d.ts.map +1 -0
- package/dist/core/src/handlers/pollMagicLinkConfirmationHandler.d.ts +24 -0
- package/dist/core/src/handlers/pollMagicLinkConfirmationHandler.d.ts.map +1 -0
- package/dist/core/src/handlers/register.d.ts +24 -0
- package/dist/core/src/handlers/register.d.ts.map +1 -0
- package/dist/core/src/handlers/requestMagicLinkHandler.d.ts +15 -0
- package/dist/core/src/handlers/requestMagicLinkHandler.d.ts.map +1 -0
- package/dist/core/src/handlers/requestOtpHandler.d.ts +17 -0
- package/dist/core/src/handlers/requestOtpHandler.d.ts.map +1 -0
- package/dist/core/src/handlers/sessions.d.ts +15 -0
- package/dist/core/src/handlers/sessions.d.ts.map +1 -0
- package/dist/core/src/handlers/systemConfig.d.ts +16 -0
- package/dist/core/src/handlers/systemConfig.d.ts.map +1 -0
- package/dist/core/src/handlers/verifyLoginOtpHandler.d.ts +26 -0
- package/dist/core/src/handlers/verifyLoginOtpHandler.d.ts.map +1 -0
- package/dist/core/src/handlers/verifyMagicLinkHandler.d.ts +14 -0
- package/dist/core/src/handlers/verifyMagicLinkHandler.d.ts.map +1 -0
- package/dist/core/src/index.d.ts +19 -0
- package/dist/core/src/index.d.ts.map +1 -0
- package/dist/core/src/refreshAccessToken.d.ts +23 -0
- package/dist/core/src/refreshAccessToken.d.ts.map +1 -0
- package/dist/core/src/verifyCookieJwt.d.ts +3 -0
- package/dist/core/src/verifyCookieJwt.d.ts.map +1 -0
- package/dist/core/src/verifyRefreshCookie.d.ts +7 -0
- package/dist/core/src/verifyRefreshCookie.d.ts.map +1 -0
- package/dist/core/src/verifySignedAuthResponse.d.ts +2 -0
- package/dist/core/src/verifySignedAuthResponse.d.ts.map +1 -0
- package/dist/express/src/createServer.d.ts.map +1 -0
- package/dist/express/src/getSeamlessUser.d.ts.map +1 -0
- package/dist/express/src/handlers/admin.d.ts.map +1 -0
- package/dist/express/src/handlers/bootstrapAdmininvite.d.ts.map +1 -0
- package/dist/express/src/handlers/finishLogin.d.ts.map +1 -0
- package/dist/express/src/handlers/finishRegister.d.ts.map +1 -0
- package/dist/express/src/handlers/internalMetrics.d.ts.map +1 -0
- package/dist/express/src/handlers/login.d.ts.map +1 -0
- package/dist/express/src/handlers/logout.d.ts.map +1 -0
- package/dist/express/src/handlers/me.d.ts.map +1 -0
- package/dist/express/src/handlers/pollMagicLinkConfirmation.d.ts.map +1 -0
- package/dist/express/src/handlers/register.d.ts.map +1 -0
- package/dist/express/src/handlers/requestMagicLink.d.ts.map +1 -0
- package/dist/express/src/handlers/requestOtp.d.ts +7 -0
- package/dist/express/src/handlers/requestOtp.d.ts.map +1 -0
- package/dist/express/src/handlers/sessions.d.ts.map +1 -0
- package/dist/express/src/handlers/systemConfig.d.ts.map +1 -0
- package/dist/{handlers/requestOtp.d.ts → express/src/handlers/verifyLoginOtp.d.ts} +2 -3
- package/dist/express/src/handlers/verifyLoginOtp.d.ts.map +1 -0
- package/dist/express/src/index.d.ts.map +1 -0
- package/dist/express/src/internal/buildAuthorization.d.ts.map +1 -0
- package/dist/express/src/internal/buildForwardedClientIp.d.ts +3 -0
- package/dist/express/src/internal/buildForwardedClientIp.d.ts.map +1 -0
- package/dist/express/src/internal/cookie.d.ts.map +1 -0
- package/dist/express/src/internal/deliverAuthMessage.d.ts.map +1 -0
- package/dist/express/src/messaging.d.ts.map +1 -0
- package/dist/express/src/middleware/ensureCookies.d.ts.map +1 -0
- package/dist/express/src/middleware/requireAuth.d.ts.map +1 -0
- package/dist/express/src/middleware/requireRole.d.ts.map +1 -0
- package/dist/index.js +181 -41
- package/package.json +2 -2
- package/dist/createServer.d.ts.map +0 -1
- package/dist/getSeamlessUser.d.ts.map +0 -1
- package/dist/handlers/admin.d.ts.map +0 -1
- package/dist/handlers/bootstrapAdmininvite.d.ts.map +0 -1
- package/dist/handlers/finishLogin.d.ts.map +0 -1
- package/dist/handlers/finishRegister.d.ts.map +0 -1
- package/dist/handlers/internalMetrics.d.ts.map +0 -1
- package/dist/handlers/login.d.ts.map +0 -1
- package/dist/handlers/logout.d.ts.map +0 -1
- package/dist/handlers/me.d.ts.map +0 -1
- package/dist/handlers/pollMagicLinkConfirmation.d.ts.map +0 -1
- package/dist/handlers/register.d.ts.map +0 -1
- package/dist/handlers/requestMagicLink.d.ts.map +0 -1
- package/dist/handlers/requestOtp.d.ts.map +0 -1
- package/dist/handlers/sessions.d.ts.map +0 -1
- package/dist/handlers/systemConfig.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/internal/buildAuthorization.d.ts.map +0 -1
- package/dist/internal/cookie.d.ts.map +0 -1
- package/dist/internal/deliverAuthMessage.d.ts.map +0 -1
- package/dist/messaging.d.ts.map +0 -1
- package/dist/middleware/ensureCookies.d.ts.map +0 -1
- package/dist/middleware/requireAuth.d.ts.map +0 -1
- package/dist/middleware/requireRole.d.ts.map +0 -1
- /package/dist/{createServer.d.ts → express/src/createServer.d.ts} +0 -0
- /package/dist/{getSeamlessUser.d.ts → express/src/getSeamlessUser.d.ts} +0 -0
- /package/dist/{handlers → express/src/handlers}/admin.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/bootstrapAdmininvite.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/finishLogin.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/finishRegister.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/internalMetrics.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/login.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/logout.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/me.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/pollMagicLinkConfirmation.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/register.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/requestMagicLink.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/sessions.d.ts +0 -0
- /package/dist/{handlers → express/src/handlers}/systemConfig.d.ts +0 -0
- /package/dist/{index.d.ts → express/src/index.d.ts} +0 -0
- /package/dist/{internal → express/src/internal}/buildAuthorization.d.ts +0 -0
- /package/dist/{internal → express/src/internal}/cookie.d.ts +0 -0
- /package/dist/{internal → express/src/internal}/deliverAuthMessage.d.ts +0 -0
- /package/dist/{messaging.d.ts → express/src/messaging.d.ts} +0 -0
- /package/dist/{middleware → express/src/middleware}/ensureCookies.d.ts +0 -0
- /package/dist/{middleware → express/src/middleware}/requireAuth.d.ts +0 -0
- /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
|
-
{
|
|
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
|
-
{
|
|
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
|
|
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
|
-
{
|
|
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
|
+
"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.
|
|
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"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -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"}
|
package/dist/messaging.d.ts.map
DELETED
|
@@ -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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|