@seamless-auth/core 0.2.1 → 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 (48) hide show
  1. package/dist/authMessaging.d.ts +98 -0
  2. package/dist/authMessaging.d.ts.map +1 -0
  3. package/dist/authMessaging.js +2 -0
  4. package/dist/authMessaging.js.map +1 -0
  5. package/dist/ensureCookies.d.ts.map +1 -1
  6. package/dist/ensureCookies.js +31 -0
  7. package/dist/ensureCookies.js.map +1 -1
  8. package/dist/handlers/admin.d.ts +28 -0
  9. package/dist/handlers/admin.d.ts.map +1 -0
  10. package/dist/handlers/admin.js +39 -0
  11. package/dist/handlers/admin.js.map +1 -0
  12. package/dist/handlers/bootstrapAdminInvite.d.ts +17 -0
  13. package/dist/handlers/bootstrapAdminInvite.d.ts.map +1 -0
  14. package/dist/handlers/bootstrapAdminInvite.js +27 -0
  15. package/dist/handlers/bootstrapAdminInvite.js.map +1 -0
  16. package/dist/handlers/finishRegister.d.ts +1 -0
  17. package/dist/handlers/finishRegister.d.ts.map +1 -1
  18. package/dist/handlers/finishRegister.js +2 -1
  19. package/dist/handlers/finishRegister.js.map +1 -1
  20. package/dist/handlers/internalMetrics.d.ts +20 -0
  21. package/dist/handlers/internalMetrics.d.ts.map +1 -0
  22. package/dist/handlers/internalMetrics.js +33 -0
  23. package/dist/handlers/internalMetrics.js.map +1 -0
  24. package/dist/handlers/register.d.ts +1 -0
  25. package/dist/handlers/register.d.ts.map +1 -1
  26. package/dist/handlers/register.js +35 -8
  27. package/dist/handlers/register.js.map +1 -1
  28. package/dist/handlers/requestMagicLinkHandler.d.ts +1 -0
  29. package/dist/handlers/requestMagicLinkHandler.d.ts.map +1 -1
  30. package/dist/handlers/requestMagicLinkHandler.js +7 -0
  31. package/dist/handlers/requestMagicLinkHandler.js.map +1 -1
  32. package/dist/handlers/requestOtpHandler.d.ts +15 -0
  33. package/dist/handlers/requestOtpHandler.d.ts.map +1 -0
  34. package/dist/handlers/requestOtpHandler.js +29 -0
  35. package/dist/handlers/requestOtpHandler.js.map +1 -0
  36. package/dist/handlers/sessions.d.ts +14 -0
  37. package/dist/handlers/sessions.d.ts.map +1 -0
  38. package/dist/handlers/sessions.js +22 -0
  39. package/dist/handlers/sessions.js.map +1 -0
  40. package/dist/handlers/systemConfig.d.ts +15 -0
  41. package/dist/handlers/systemConfig.d.ts.map +1 -0
  42. package/dist/handlers/systemConfig.js +54 -0
  43. package/dist/handlers/systemConfig.js.map +1 -0
  44. package/dist/index.d.ts +2 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2 -0
  47. package/dist/index.js.map +1 -1
  48. package/package.json +2 -2
@@ -0,0 +1,98 @@
1
+ export type MessagingChannel = "email" | "sms";
2
+ export interface DeliveryResult {
3
+ accepted: boolean;
4
+ provider: string;
5
+ channel: MessagingChannel;
6
+ messageId?: string;
7
+ raw?: unknown;
8
+ }
9
+ export interface EmailMessage {
10
+ to: string;
11
+ from?: string;
12
+ subject: string;
13
+ text: string;
14
+ html?: string;
15
+ }
16
+ export interface SmsMessage {
17
+ to: string;
18
+ from?: string;
19
+ body: string;
20
+ }
21
+ export interface EmailTransport {
22
+ readonly name: string;
23
+ send(message: EmailMessage): Promise<DeliveryResult>;
24
+ }
25
+ export interface SmsTransport {
26
+ readonly name: string;
27
+ send(message: SmsMessage): Promise<DeliveryResult>;
28
+ }
29
+ export interface SendOtpEmailInput {
30
+ to: string;
31
+ token: string;
32
+ from?: string;
33
+ subject?: string;
34
+ }
35
+ export interface SendOtpSmsInput {
36
+ to: string;
37
+ token: string | number;
38
+ from?: string;
39
+ }
40
+ export interface SendMagicLinkEmailInput {
41
+ to: string;
42
+ magicLinkUrl: string;
43
+ token?: string;
44
+ from?: string;
45
+ subject?: string;
46
+ }
47
+ export interface SendBootstrapInviteEmailInput {
48
+ to: string;
49
+ inviteUrl: string;
50
+ from?: string;
51
+ subject?: string;
52
+ }
53
+ export interface AuthMessageOverrideContext {
54
+ appName?: string;
55
+ }
56
+ export interface AuthMessageOverrides {
57
+ otpEmail?: (input: SendOtpEmailInput, defaults: EmailMessage, context: AuthMessageOverrideContext) => EmailMessage;
58
+ otpSms?: (input: SendOtpSmsInput, defaults: SmsMessage, context: AuthMessageOverrideContext) => SmsMessage;
59
+ magicLinkEmail?: (input: SendMagicLinkEmailInput, defaults: EmailMessage, context: AuthMessageOverrideContext) => EmailMessage;
60
+ bootstrapInviteEmail?: (input: SendBootstrapInviteEmailInput, defaults: EmailMessage, context: AuthMessageOverrideContext) => EmailMessage;
61
+ }
62
+ export interface AuthMessagingHandlers {
63
+ sendOtpEmail(input: SendOtpEmailInput): Promise<DeliveryResult>;
64
+ sendOtpSms(input: SendOtpSmsInput): Promise<DeliveryResult>;
65
+ sendMagicLinkEmail(input: SendMagicLinkEmailInput): Promise<DeliveryResult>;
66
+ sendBootstrapInviteEmail(input: SendBootstrapInviteEmailInput): Promise<DeliveryResult>;
67
+ }
68
+ export interface SeamlessAuthMessagingOptions {
69
+ email?: EmailTransport;
70
+ sms?: SmsTransport;
71
+ handlers?: Partial<AuthMessagingHandlers>;
72
+ overrides?: AuthMessageOverrides;
73
+ defaults?: {
74
+ appName?: string;
75
+ emailFrom?: string;
76
+ smsFrom?: string;
77
+ };
78
+ }
79
+ export type AuthDeliveryInstruction = {
80
+ kind: "otp_email";
81
+ to: string;
82
+ token: string;
83
+ } | {
84
+ kind: "otp_sms";
85
+ to: string;
86
+ token: string | number;
87
+ } | {
88
+ kind: "magic_link_email";
89
+ to: string;
90
+ token?: string;
91
+ magicLinkUrl: string;
92
+ } | {
93
+ kind: "bootstrap_invite_email";
94
+ to: string;
95
+ token?: string;
96
+ inviteUrl: string;
97
+ };
98
+ //# sourceMappingURL=authMessaging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authMessaging.d.ts","sourceRoot":"","sources":["../src/authMessaging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=authMessaging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authMessaging.js","sourceRoot":"","sources":["../src/authMessaging.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ensureCookies.d.ts","sourceRoot":"","sources":["../src/ensureCookies.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,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;AAoCD,wBAAsB,aAAa,CACjC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CA0G9B"}
1
+ {"version":3,"file":"ensureCookies.d.ts","sourceRoot":"","sources":["../src/ensureCookies.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,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;AAwED,wBAAsB,aAAa,CACjC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CA0G9B"}
@@ -29,6 +29,37 @@ const COOKIE_REQUIREMENTS = {
29
29
  },
30
30
  "/logout": { name: "accessCookieName", required: true },
31
31
  "/users/me": { name: "accessCookieName", required: true },
32
+ "/internal/metrics/dashboard": { name: "accessCookieName", required: true },
33
+ "/internal/auth-events/timeseries": {
34
+ name: "accessCookieName",
35
+ required: true,
36
+ },
37
+ "/internal/auth-events/grouped": { name: "accessCookieName", required: true },
38
+ "/internal/auth-events/login-stats": {
39
+ name: "accessCookieName",
40
+ required: true,
41
+ },
42
+ "/internal/security/anomalies": { name: "accessCookieName", required: true },
43
+ "/admin/user": {
44
+ name: "accessCookieName",
45
+ required: true,
46
+ },
47
+ "/admin/sessions": {
48
+ name: "accessCookieName",
49
+ required: true,
50
+ },
51
+ "/admin/auth-events": {
52
+ name: "accessCookieName",
53
+ required: true,
54
+ },
55
+ "/system-config/admin": {
56
+ name: "accessCookieName",
57
+ required: true,
58
+ },
59
+ "/system-config/roles": {
60
+ name: "accessCookieName",
61
+ required: true,
62
+ },
32
63
  };
33
64
  export async function ensureCookies(input, opts) {
34
65
  const match = Object.entries(COOKIE_REQUIREMENTS).find(([path]) => input.path.startsWith(path));
@@ -1 +1 @@
1
- {"version":3,"file":"ensureCookies.js","sourceRoot":"","sources":["../src/ensureCookies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensureCookies.js","sourceRoot":"","sources":["../src/ensureCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAiD7D,MAAM,mBAAmB,GAGrB;IACF,wBAAwB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvE,uBAAuB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtE,0BAA0B,EAAE;QAC1B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,IAAI;KACf;IACD,2BAA2B,EAAE;QAC3B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,IAAI;KACf;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,IAAI;KACf;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,WAAW,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzD,6BAA6B,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3E,kCAAkC,EAAE;QAClC,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,IAAI;KACf;IAED,+BAA+B,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7E,mCAAmC,EAAE;QACnC,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,IAAI;KACf;IAED,8BAA8B,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IAE5E,aAAa,EAAE;QACb,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,IAAI;KACf;IAED,sBAAsB,EAAE;QACtB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,IAAI;KACf;IAED,sBAAsB,EAAE;QACtB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAyB,EACzB,IAA0B;IAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAChE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAC5B,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CACX,uFAAuF,EACvF,KAAK,CAAC,IAAI,CACX,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,yBAAyB;SACjC,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE5D,IAAI,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,4BAA4B,UAAU,GAAG;aACjD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE;YACxD,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;YACtB,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,gBAAgB;gBACvB,YAAY,EAAE;oBACZ,UAAU;oBACV,IAAI,CAAC,sBAAsB;oBAC3B,IAAI,CAAC,iBAAiB;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE;gBACJ,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB;YACD,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE;wBACL,GAAG,EAAE,SAAS,CAAC,GAAG;wBAClB,KAAK,EAAE,SAAS,CAAC,KAAK;qBACvB;oBACD,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,MAAM,EAAE,IAAI,CAAC,YAAY;iBAC1B;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC,iBAAiB;oBAC5B,KAAK,EAAE;wBACL,GAAG,EAAE,SAAS,CAAC,GAAG;wBAClB,YAAY,EAAE,SAAS,CAAC,YAAY;qBACrC;oBACD,GAAG,EAAE,SAAS,CAAC,UAAU;oBACzB,MAAM,EAAE,IAAI,CAAC,YAAY;iBAC1B;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,sBAAsB,UAAU,SAAS;aACjD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE;gBACJ,GAAG,EAAE,OAAO,CAAC,GAAa;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAA6B;aAC7C;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1,28 @@
1
+ type BaseOpts = {
2
+ authServerUrl: string;
3
+ authorization?: string;
4
+ };
5
+ type WithQuery = BaseOpts & {
6
+ query?: Record<string, any>;
7
+ };
8
+ type WithBody = BaseOpts & {
9
+ body?: any;
10
+ };
11
+ type Result = {
12
+ status: number;
13
+ body?: any;
14
+ error?: string;
15
+ };
16
+ export declare const getUsersHandler: (opts: BaseOpts) => Promise<Result>;
17
+ export declare const createUserHandler: (opts: WithBody) => Promise<Result>;
18
+ export declare const deleteUserHandler: (opts: BaseOpts) => Promise<Result>;
19
+ export declare const updateUserHandler: (userId: string, opts: WithBody) => Promise<Result>;
20
+ export declare const getUserDetailHandler: (userId: string, opts: BaseOpts) => Promise<Result>;
21
+ export declare const getUserAnomaliesHandler: (userId: string, opts: BaseOpts) => Promise<Result>;
22
+ export declare const getAuthEventsHandler: (opts: WithQuery) => Promise<Result>;
23
+ export declare const getCredentialCountHandler: (opts: BaseOpts) => Promise<Result>;
24
+ export declare const listAllSessionsHandler: (opts: WithQuery) => Promise<Result>;
25
+ export declare const listUserSessionsHandler: (userId: string, opts: BaseOpts) => Promise<Result>;
26
+ export declare const revokeAllUserSessionsHandler: (userId: string, opts: BaseOpts) => Promise<Result>;
27
+ export {};
28
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/handlers/admin.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,SAAS,GAAG,QAAQ,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,CAAC;AAEF,KAAK,QAAQ,GAAG,QAAQ,GAAG;IACzB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA2CF,eAAO,MAAM,eAAe,GAAI,MAAM,QAAQ,oBACR,CAAC;AAEvC,eAAO,MAAM,iBAAiB,GAAI,MAAM,QAAQ,oBACT,CAAC;AAExC,eAAO,MAAM,iBAAiB,GAAI,MAAM,QAAQ,oBACP,CAAC;AAE1C,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,MAAM,QAAQ,oBACd,CAAC;AAEnD,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,EAAE,MAAM,QAAQ,oBACnB,CAAC;AAEjD,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,EAAE,MAAM,QAAQ,oBACZ,CAAC;AAE3D,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,oBACR,CAAC;AAE7C,eAAO,MAAM,yBAAyB,GAAI,MAAM,QAAQ,oBACP,CAAC;AAElD,eAAO,MAAM,sBAAsB,GAAI,MAAM,SAAS,oBACb,CAAC;AAE1C,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,EAAE,MAAM,QAAQ,oBACnB,CAAC;AAEpD,eAAO,MAAM,4BAA4B,GAAI,QAAQ,MAAM,EAAE,MAAM,QAAQ,oBACV,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { authFetch } from "../authFetch.js";
2
+ function buildUrl(base, query) {
3
+ if (!query)
4
+ return base;
5
+ const qs = new URLSearchParams(Object.entries(query)
6
+ .filter(([, v]) => v !== undefined && v !== null)
7
+ .map(([k, v]) => [k, String(v)])).toString();
8
+ return qs ? `${base}?${qs}` : base;
9
+ }
10
+ async function request(method, path, opts) {
11
+ const up = await authFetch(buildUrl(`${opts.authServerUrl}${path}`, opts.query), {
12
+ method,
13
+ authorization: opts.authorization,
14
+ body: opts.body,
15
+ });
16
+ const data = await up.json();
17
+ if (!up.ok) {
18
+ return {
19
+ status: up.status,
20
+ error: data?.error || "admin_request_failed",
21
+ };
22
+ }
23
+ return {
24
+ status: up.status,
25
+ body: data,
26
+ };
27
+ }
28
+ export const getUsersHandler = (opts) => request("GET", "/admin/users", opts);
29
+ export const createUserHandler = (opts) => request("POST", "/admin/users", opts);
30
+ export const deleteUserHandler = (opts) => request("DELETE", "/admin/users", opts);
31
+ export const updateUserHandler = (userId, opts) => request("PATCH", `/admin/users/${userId}`, opts);
32
+ export const getUserDetailHandler = (userId, opts) => request("GET", `/admin/users/${userId}`, opts);
33
+ export const getUserAnomaliesHandler = (userId, opts) => request("GET", `/admin/users/${userId}/anomalies`, opts);
34
+ export const getAuthEventsHandler = (opts) => request("GET", "/admin/auth-events", opts);
35
+ export const getCredentialCountHandler = (opts) => request("GET", "/admin/credential-count", opts);
36
+ export const listAllSessionsHandler = (opts) => request("GET", "/admin/sessions", opts);
37
+ export const listUserSessionsHandler = (userId, opts) => request("GET", `/admin/sessions/${userId}`, opts);
38
+ export const revokeAllUserSessionsHandler = (userId, opts) => request("DELETE", `/admin/sessions/${userId}/revoke-all`, opts);
39
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/handlers/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface BootstrapAdminInviteOptions {
2
+ authServerUrl: string;
3
+ email: string;
4
+ authorization?: string;
5
+ externalDelivery?: boolean;
6
+ }
7
+ export interface BootstrapAdminInviteResult {
8
+ status: number;
9
+ body?: {
10
+ url?: string;
11
+ expiresAt: string;
12
+ token?: string;
13
+ };
14
+ error?: string;
15
+ }
16
+ export declare function bootstrapAdminInviteHandler(opts: BootstrapAdminInviteOptions): Promise<BootstrapAdminInviteResult>;
17
+ //# sourceMappingURL=bootstrapAdminInvite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapAdminInvite.d.ts","sourceRoot":"","sources":["../../src/handlers/bootstrapAdminInvite.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,0BAA0B,CAAC,CA8BrC"}
@@ -0,0 +1,27 @@
1
+ import { authFetch } from "../authFetch.js";
2
+ export async function bootstrapAdminInviteHandler(opts) {
3
+ const up = await authFetch(`${opts.authServerUrl}/internal/bootstrap/admin-invite`, {
4
+ method: "POST",
5
+ headers: {
6
+ authorization: opts.authorization || "",
7
+ ...(opts.externalDelivery
8
+ ? {
9
+ "x-seamless-auth-delivery-mode": "external",
10
+ }
11
+ : {}),
12
+ },
13
+ body: { email: opts.email },
14
+ });
15
+ const data = await up.json();
16
+ if (!up.ok) {
17
+ return {
18
+ status: up.status,
19
+ error: data?.error?.message || "bootstrap_failed",
20
+ };
21
+ }
22
+ return {
23
+ status: up.status,
24
+ body: data?.data,
25
+ };
26
+ }
27
+ //# sourceMappingURL=bootstrapAdminInvite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapAdminInvite.js","sourceRoot":"","sources":["../../src/handlers/bootstrapAdminInvite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAmB5C,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAiC;IAEjC,MAAM,EAAE,GAAG,MAAM,SAAS,CACxB,GAAG,IAAI,CAAC,aAAa,kCAAkC,EACvD;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;YACvC,GAAG,CAAC,IAAI,CAAC,gBAAgB;gBACvB,CAAC,CAAC;oBACE,+BAA+B,EAAE,UAAU;iBAC5C;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;QACD,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;KAC5B,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,kBAAkB;SAClD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { CookiePayload } from "../ensureCookies.js";
2
2
  export interface FinishRegisterInput {
3
3
  authorization?: string;
4
+ headers?: Record<string, string>;
4
5
  body: unknown;
5
6
  }
6
7
  export interface FinishRegisterOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"finishRegister.d.ts","sourceRoot":"","sources":["../../src/handlers/finishRegister.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,aAAa,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAsD/B"}
1
+ {"version":3,"file":"finishRegister.d.ts","sourceRoot":"","sources":["../../src/handlers/finishRegister.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,aAAa,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAuD/B"}
@@ -3,8 +3,9 @@ import { verifySignedAuthResponse } from "../verifySignedAuthResponse.js";
3
3
  export async function finishRegisterHandler(input, opts) {
4
4
  const up = await authFetch(`${opts.authServerUrl}/webAuthn/register/finish`, {
5
5
  method: "POST",
6
- body: input.body,
7
6
  authorization: input.authorization,
7
+ headers: input.headers,
8
+ body: input.body,
8
9
  });
9
10
  const data = await up.json();
10
11
  if (!up.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"finishRegister.js","sourceRoot":"","sources":["../../src/handlers/finishRegister.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAyB1E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAA0B,EAC1B,IAA2B;IAE3B,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,2BAA2B,EAAE;QAC3E,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG;QACX,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,IAAI,CAAC,gBAAgB;gBAC3B,KAAK,EAAE;oBACL,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB;gBACD,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,iBAAiB;gBAC5B,KAAK,EAAE;oBACL,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC;gBACD,GAAG,EAAE,IAAI,CAAC,UAAU;gBACpB,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"finishRegister.js","sourceRoot":"","sources":["../../src/handlers/finishRegister.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AA0B1E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAA0B,EAC1B,IAA2B;IAE3B,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,2BAA2B,EAAE;QAC3E,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG;QACX,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,IAAI,CAAC,gBAAgB;gBAC3B,KAAK,EAAE;oBACL,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB;gBACD,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,iBAAiB;gBAC5B,KAAK,EAAE;oBACL,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC;gBACD,GAAG,EAAE,IAAI,CAAC,UAAU;gBACpB,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ type BaseOpts = {
2
+ authServerUrl: string;
3
+ authorization?: string;
4
+ };
5
+ type WithQuery = BaseOpts & {
6
+ query?: Record<string, string | number | boolean | undefined>;
7
+ };
8
+ type Result = {
9
+ status: number;
10
+ body?: any;
11
+ error?: string;
12
+ };
13
+ export declare const getAuthEventSummaryHandler: (opts: WithQuery) => Promise<Result>;
14
+ export declare const getAuthEventTimeseriesHandler: (opts: WithQuery) => Promise<Result>;
15
+ export declare const getLoginStatsHandler: (opts: BaseOpts) => Promise<Result>;
16
+ export declare const getSecurityAnomaliesHandler: (opts: BaseOpts) => Promise<Result>;
17
+ export declare const getDashboardMetricsHandler: (opts: BaseOpts) => Promise<Result>;
18
+ export declare const getGroupedEventSummaryHandler: (opts: BaseOpts) => Promise<Result>;
19
+ export {};
20
+ //# sourceMappingURL=internalMetrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalMetrics.d.ts","sourceRoot":"","sources":["../../src/handlers/internalMetrics.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,SAAS,GAAG,QAAQ,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC/D,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAqCF,eAAO,MAAM,0BAA0B,GAAI,MAAM,SAAS,oBACd,CAAC;AAE7C,eAAO,MAAM,6BAA6B,GAAI,MAAM,SAAS,oBACd,CAAC;AAEhD,eAAO,MAAM,oBAAoB,GAAI,MAAM,QAAQ,oBACH,CAAC;AAEjD,eAAO,MAAM,2BAA2B,GAAI,MAAM,QAAQ,oBACf,CAAC;AAE5C,eAAO,MAAM,0BAA0B,GAAI,MAAM,QAAQ,oBACf,CAAC;AAE3C,eAAO,MAAM,6BAA6B,GAAI,MAAM,QAAQ,oBAChB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { authFetch } from "../authFetch.js";
2
+ function buildUrl(base, query) {
3
+ if (!query)
4
+ return base;
5
+ const qs = new URLSearchParams(Object.entries(query)
6
+ .filter(([, v]) => v !== undefined && v !== null)
7
+ .map(([k, v]) => [k, String(v)])).toString();
8
+ return qs ? `${base}?${qs}` : base;
9
+ }
10
+ async function get(path, opts) {
11
+ const up = await authFetch(buildUrl(`${opts.authServerUrl}${path}`, opts.query), {
12
+ method: "GET",
13
+ authorization: opts.authorization,
14
+ });
15
+ const data = await up.json();
16
+ if (!up.ok) {
17
+ return {
18
+ status: up.status,
19
+ error: data?.error || "internal_request_failed",
20
+ };
21
+ }
22
+ return {
23
+ status: up.status,
24
+ body: data,
25
+ };
26
+ }
27
+ export const getAuthEventSummaryHandler = (opts) => get("/internal/auth-events/summary", opts);
28
+ export const getAuthEventTimeseriesHandler = (opts) => get("/internal/auth-events/timeseries", opts);
29
+ export const getLoginStatsHandler = (opts) => get("/internal/auth-events/login-stats", opts);
30
+ export const getSecurityAnomaliesHandler = (opts) => get("/internal/security/anomalies", opts);
31
+ export const getDashboardMetricsHandler = (opts) => get("/internal/metrics/dashboard", opts);
32
+ export const getGroupedEventSummaryHandler = (opts) => get("/internal/auth-events/grouped", opts);
33
+ //# sourceMappingURL=internalMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalMetrics.js","sourceRoot":"","sources":["../../src/handlers/internalMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiB5C,SAAS,QAAQ,CAAC,IAAY,EAAE,KAA0B;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,eAAe,CAC5B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC,QAAQ,EAAE,CAAC;IAEb,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,IAAY,EAAE,IAAe;IAC9C,MAAM,EAAE,GAAG,MAAM,SAAS,CACxB,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EACpD;QACE,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,yBAAyB;SAChD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAe,EAAE,EAAE,CAC5D,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAe,EAAE,EAAE,CAC/D,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAc,EAAE,EAAE,CACrD,GAAG,CAAC,mCAAmC,EAAE,IAAI,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAc,EAAE,EAAE,CAC5D,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAc,EAAE,EAAE,CAC3D,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,EAAE,CAC9D,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC"}
@@ -6,6 +6,7 @@ export interface RegisterOptions {
6
6
  authServerUrl: string;
7
7
  cookieDomain?: string;
8
8
  registrationCookieName: string;
9
+ externalDelivery?: boolean;
9
10
  }
10
11
  export interface RegisterResult {
11
12
  status: number;
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/handlers/register.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,aAAa,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,cAAc,CAAC,CA2BzB"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/handlers/register.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,aAAa,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,cAAc,CAAC,CA8DzB"}
@@ -3,6 +3,13 @@ export async function registerHandler(input, opts) {
3
3
  const up = await authFetch(`${opts.authServerUrl}/registration/register`, {
4
4
  method: "POST",
5
5
  body: input.body,
6
+ ...(opts.externalDelivery
7
+ ? {
8
+ headers: {
9
+ "x-seamless-auth-delivery-mode": "external",
10
+ },
11
+ }
12
+ : {}),
6
13
  });
7
14
  const data = await up.json();
8
15
  if (!up.ok) {
@@ -11,17 +18,37 @@ export async function registerHandler(input, opts) {
11
18
  error: data,
12
19
  };
13
20
  }
21
+ const rawCookies = up.headers.getSetCookie?.() ||
22
+ up.headers.get?.("set-cookie")?.split(",") ||
23
+ [];
24
+ let bootstrapCookie;
25
+ for (const cookie of rawCookies) {
26
+ if (cookie.startsWith("seamless_bootstrap_token=")) {
27
+ const value = cookie.split(";")[0].split("=")[1];
28
+ bootstrapCookie = {
29
+ name: "seamless_bootstrap_token",
30
+ value: { sub: value },
31
+ ttl: "900",
32
+ domain: opts.cookieDomain,
33
+ };
34
+ break;
35
+ }
36
+ }
37
+ const setCookies = [
38
+ {
39
+ name: opts.registrationCookieName,
40
+ value: { sub: data.sub },
41
+ ttl: data.ttl,
42
+ domain: opts.cookieDomain,
43
+ },
44
+ ];
45
+ if (bootstrapCookie) {
46
+ setCookies.push(bootstrapCookie);
47
+ }
14
48
  return {
15
49
  status: 200,
16
50
  body: data,
17
- setCookies: [
18
- {
19
- name: opts.registrationCookieName,
20
- value: { sub: data.sub },
21
- ttl: data.ttl,
22
- domain: opts.cookieDomain,
23
- },
24
- ],
51
+ setCookies,
25
52
  };
26
53
  }
27
54
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/handlers/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAyB5C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAoB,EACpB,IAAqB;IAErB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,wBAAwB,EAAE;QACxE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI;QACV,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,IAAI,CAAC,sBAAsB;gBACjC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;gBACxB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/handlers/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA0B5C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAoB,EACpB,IAAqB;IAErB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,wBAAwB,EAAE;QACxE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,IAAI,CAAC,gBAAgB;YACvB,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,+BAA+B,EAAE,UAAU;iBAC5C;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GACb,EAAE,CAAC,OAAe,CAAC,YAAY,EAAE,EAAE;QACpC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;QAC1C,EAAE,CAAC;IAEL,IAAI,eAAe,CAAC;IAEpB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjD,eAAe,GAAG;gBAChB,IAAI,EAAE,0BAA0B;gBAChC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;gBACrB,GAAG,EAAE,KAAK;gBACV,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B,CAAC;YAEF,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG;QACjB;YACE,IAAI,EAAE,IAAI,CAAC,sBAAsB;YACjC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,YAAY;SAC1B;KACF,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI;QACV,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -3,6 +3,7 @@ export interface RequestMagicLinkInput {
3
3
  }
4
4
  export interface RequestMagicLinkOptions {
5
5
  authServerUrl: string;
6
+ externalDelivery?: boolean;
6
7
  }
7
8
  export interface RequestMagicLinkResult {
8
9
  status: number;
@@ -1 +1 @@
1
- {"version":3,"file":"requestMagicLinkHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/requestMagicLinkHandler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CAmBjC"}
1
+ {"version":3,"file":"requestMagicLinkHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/requestMagicLinkHandler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CA0BjC"}
@@ -3,6 +3,13 @@ export async function requestMagicLinkHandler(input, opts) {
3
3
  const up = await authFetch(`${opts.authServerUrl}/magic-link`, {
4
4
  method: "GET",
5
5
  authorization: input.authorization,
6
+ ...(opts.externalDelivery
7
+ ? {
8
+ headers: {
9
+ "x-seamless-auth-delivery-mode": "external",
10
+ },
11
+ }
12
+ : {}),
6
13
  });
7
14
  const data = await up.json();
8
15
  if (!up.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"requestMagicLinkHandler.js","sourceRoot":"","sources":["../../src/handlers/requestMagicLinkHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgB5C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAA4B,EAC5B,IAA6B;IAE7B,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,aAAa,EAAE;QAC7D,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"requestMagicLinkHandler.js","sourceRoot":"","sources":["../../src/handlers/requestMagicLinkHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiB5C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAA4B,EAC5B,IAA6B;IAE7B,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,aAAa,EAAE;QAC7D,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,GAAG,CAAC,IAAI,CAAC,gBAAgB;YACvB,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,+BAA+B,EAAE,UAAU;iBAC5C;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface RequestOtpInput {
2
+ authorization?: string;
3
+ kind: "email" | "phone";
4
+ }
5
+ export interface RequestOtpOptions {
6
+ authServerUrl: string;
7
+ externalDelivery?: boolean;
8
+ }
9
+ export interface RequestOtpResult {
10
+ status: number;
11
+ body?: unknown;
12
+ error?: unknown;
13
+ }
14
+ export declare function requestOtpHandler(input: RequestOtpInput, opts: RequestOtpOptions): Promise<RequestOtpResult>;
15
+ //# sourceMappingURL=requestOtpHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestOtpHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/requestOtpHandler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA+B3B"}
@@ -0,0 +1,29 @@
1
+ import { authFetch } from "../authFetch.js";
2
+ export async function requestOtpHandler(input, opts) {
3
+ const path = input.kind === "email"
4
+ ? "otp/generate-email-otp"
5
+ : "otp/generate-phone-otp";
6
+ const up = await authFetch(`${opts.authServerUrl}/${path}`, {
7
+ method: "GET",
8
+ authorization: input.authorization,
9
+ ...(opts.externalDelivery
10
+ ? {
11
+ headers: {
12
+ "x-seamless-auth-delivery-mode": "external",
13
+ },
14
+ }
15
+ : {}),
16
+ });
17
+ const data = await up.json();
18
+ if (!up.ok) {
19
+ return {
20
+ status: up.status,
21
+ error: data,
22
+ };
23
+ }
24
+ return {
25
+ status: up.status,
26
+ body: data,
27
+ };
28
+ }
29
+ //# sourceMappingURL=requestOtpHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestOtpHandler.js","sourceRoot":"","sources":["../../src/handlers/requestOtpHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAkB5C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAsB,EACtB,IAAuB;IAEvB,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,KAAK,OAAO;QACpB,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,wBAAwB,CAAC;IAE/B,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,EAAE;QAC1D,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,GAAG,CAAC,IAAI,CAAC,gBAAgB;YACvB,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,+BAA+B,EAAE,UAAU;iBAC5C;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ type BaseOpts = {
2
+ authServerUrl: string;
3
+ authorization?: string;
4
+ };
5
+ type Result = {
6
+ status: number;
7
+ body?: any;
8
+ error?: string;
9
+ };
10
+ export declare const listSessionsHandler: (opts: BaseOpts) => Promise<Result>;
11
+ export declare const revokeSessionHandler: (id: string, opts: BaseOpts) => Promise<Result>;
12
+ export declare const revokeAllSessionsHandler: (opts: BaseOpts) => Promise<Result>;
13
+ export {};
14
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/handlers/sessions.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA2BF,eAAO,MAAM,mBAAmB,GAAI,MAAM,QAAQ,oBACf,CAAC;AAEpC,eAAO,MAAM,oBAAoB,GAAI,IAAI,MAAM,EAAE,MAAM,QAAQ,oBACnB,CAAC;AAE7C,eAAO,MAAM,wBAAwB,GAAI,MAAM,QAAQ,oBACjB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { authFetch } from "../authFetch.js";
2
+ async function request(method, path, opts) {
3
+ const up = await authFetch(`${opts.authServerUrl}${path}`, {
4
+ method,
5
+ authorization: opts.authorization,
6
+ });
7
+ const data = await up.json();
8
+ if (!up.ok) {
9
+ return {
10
+ status: up.status,
11
+ error: data?.error || "session_request_failed",
12
+ };
13
+ }
14
+ return {
15
+ status: up.status,
16
+ body: data,
17
+ };
18
+ }
19
+ export const listSessionsHandler = (opts) => request("GET", "/sessions", opts);
20
+ export const revokeSessionHandler = (id, opts) => request("DELETE", `/sessions/${id}`, opts);
21
+ export const revokeAllSessionsHandler = (opts) => request("DELETE", "/sessions", opts);
22
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/handlers/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5C,KAAK,UAAU,OAAO,CACpB,MAAwB,EACxB,IAAY,EACZ,IAAc;IAEd,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,EAAE;QACzD,MAAM;QACN,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,wBAAwB;SAC/C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,EAAE,CACpD,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAU,EAAE,IAAc,EAAE,EAAE,CACjE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAc,EAAE,EAAE,CACzD,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface SystemConfigOptions {
2
+ authServerUrl: string;
3
+ authorization?: string;
4
+ }
5
+ export interface SystemConfigResult {
6
+ status: number;
7
+ body?: any;
8
+ error?: string;
9
+ }
10
+ export declare function getAvailableRolesHandler(opts: SystemConfigOptions): Promise<SystemConfigResult>;
11
+ export declare function getSystemConfigAdminHandler(opts: SystemConfigOptions): Promise<SystemConfigResult>;
12
+ export declare function updateSystemConfigHandler(opts: SystemConfigOptions & {
13
+ payload: any;
14
+ }): Promise<SystemConfigResult>;
15
+ //# sourceMappingURL=systemConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemConfig.d.ts","sourceRoot":"","sources":["../../src/handlers/systemConfig.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAmB7B;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAmB7B;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,mBAAmB,GAAG;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GAC3C,OAAO,CAAC,kBAAkB,CAAC,CAoB7B"}
@@ -0,0 +1,54 @@
1
+ import { authFetch } from "../authFetch.js";
2
+ export async function getAvailableRolesHandler(opts) {
3
+ const up = await authFetch(`${opts.authServerUrl}/system-config/roles`, {
4
+ method: "GET",
5
+ authorization: opts.authorization,
6
+ });
7
+ const data = await up.json();
8
+ if (!up.ok) {
9
+ return {
10
+ status: up.status,
11
+ error: data?.error || "failed_to_fetch_roles",
12
+ };
13
+ }
14
+ return {
15
+ status: up.status,
16
+ body: data,
17
+ };
18
+ }
19
+ export async function getSystemConfigAdminHandler(opts) {
20
+ const up = await authFetch(`${opts.authServerUrl}/system-config/admin`, {
21
+ method: "GET",
22
+ authorization: opts.authorization,
23
+ });
24
+ const data = await up.json();
25
+ if (!up.ok) {
26
+ return {
27
+ status: up.status,
28
+ error: data?.error || "failed_to_fetch_config",
29
+ };
30
+ }
31
+ return {
32
+ status: up.status,
33
+ body: data,
34
+ };
35
+ }
36
+ export async function updateSystemConfigHandler(opts) {
37
+ const up = await authFetch(`${opts.authServerUrl}/system-config/admin`, {
38
+ method: "PATCH",
39
+ authorization: opts.authorization,
40
+ body: opts.payload,
41
+ });
42
+ const data = await up.json();
43
+ if (!up.ok) {
44
+ return {
45
+ status: up.status,
46
+ error: data?.error || "failed_to_update_config",
47
+ };
48
+ }
49
+ return {
50
+ status: up.status,
51
+ body: data,
52
+ };
53
+ }
54
+ //# sourceMappingURL=systemConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemConfig.js","sourceRoot":"","sources":["../../src/handlers/systemConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAyB;IAEzB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,sBAAsB,EAAE;QACtE,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,uBAAuB;SAC9C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAyB;IAEzB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,sBAAsB,EAAE;QACtE,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,wBAAwB;SAC/C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAA4C;IAE5C,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,sBAAsB,EAAE;QACtE,MAAM,EAAE,OAAO;QACf,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,IAAI,EAAE,IAAI,CAAC,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,yBAAyB;SAChD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./authFetch.js";
2
+ export * from "./authMessaging.js";
2
3
  export * from "./ensureCookies.js";
3
4
  export * from "./verifyCookieJwt.js";
4
5
  export * from "./refreshAccessToken.js";
@@ -10,6 +11,7 @@ export * from "./handlers/register.js";
10
11
  export * from "./handlers/finishRegister.js";
11
12
  export * from "./handlers/logout.js";
12
13
  export * from "./handlers/me.js";
14
+ export * from "./handlers/requestOtpHandler.js";
13
15
  export * from "./handlers/verifyMagicLinkHandler.js";
14
16
  export * from "./handlers/requestMagicLinkHandler.js";
15
17
  export * from "./handlers/pollMagicLinkConfirmationHandler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAExC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAExC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./authFetch.js";
2
+ export * from "./authMessaging.js";
2
3
  export * from "./ensureCookies.js";
3
4
  export * from "./verifyCookieJwt.js";
4
5
  export * from "./refreshAccessToken.js";
@@ -10,6 +11,7 @@ export * from "./handlers/register.js";
10
11
  export * from "./handlers/finishRegister.js";
11
12
  export * from "./handlers/logout.js";
12
13
  export * from "./handlers/me.js";
14
+ export * from "./handlers/requestOtpHandler.js";
13
15
  export * from "./handlers/verifyMagicLinkHandler.js";
14
16
  export * from "./handlers/requestMagicLinkHandler.js";
15
17
  export * from "./handlers/pollMagicLinkConfirmationHandler.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAExC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAExC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamless-auth/core",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "Framework-agnostic core authentication logic for SeamlessAuth",
5
5
  "license": "AGPL-3.0-only",
6
6
  "author": "Fells Code, LLC",
@@ -53,4 +53,4 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  }
56
- }
56
+ }