authhero 8.20.0 → 8.22.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/dist/assets/u/widget/index.esm.js +1 -1
- package/dist/authhero.cjs +142 -142
- package/dist/authhero.d.ts +402 -82
- package/dist/authhero.mjs +15092 -17184
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/authentication-flows/passwordless.d.ts +4 -4
- package/dist/types/errors/is-http-exception-like.d.ts +11 -0
- package/dist/types/helpers/dcr/metadata-mapping.d.ts +1 -1
- package/dist/types/index.d.ts +280 -79
- package/dist/types/routes/auth-api/index.d.ts +18 -18
- package/dist/types/routes/auth-api/passwordless.d.ts +10 -10
- package/dist/types/routes/auth-api/register/index.d.ts +2 -2
- package/dist/types/routes/auth-api/revoke.d.ts +6 -6
- package/dist/types/routes/management-api/action-executions.d.ts +2 -2
- package/dist/types/routes/management-api/actions.d.ts +3 -1
- package/dist/types/routes/management-api/authentication-methods.d.ts +1 -1
- package/dist/types/routes/management-api/branding.d.ts +9 -9
- package/dist/types/routes/management-api/client-grants.d.ts +16 -0
- package/dist/types/routes/management-api/clients.d.ts +109 -13
- package/dist/types/routes/management-api/connections.d.ts +16 -15
- package/dist/types/routes/management-api/flows.d.ts +1 -0
- package/dist/types/routes/management-api/forms.d.ts +1 -0
- package/dist/types/routes/management-api/grants.d.ts +1 -0
- package/dist/types/routes/management-api/guardian.d.ts +5 -5
- package/dist/types/routes/management-api/hook-code.d.ts +2 -2
- package/dist/types/routes/management-api/hooks.d.ts +1 -0
- package/dist/types/routes/management-api/index.d.ts +276 -76
- package/dist/types/routes/management-api/log-streams.d.ts +6 -6
- package/dist/types/routes/management-api/logs.d.ts +42 -3
- package/dist/types/routes/management-api/migration-sources.d.ts +6 -6
- package/dist/types/routes/management-api/organizations.d.ts +36 -2
- package/dist/types/routes/management-api/prompts.d.ts +4 -4
- package/dist/types/routes/management-api/resource-servers.d.ts +1 -0
- package/dist/types/routes/management-api/roles.d.ts +2 -0
- package/dist/types/routes/management-api/tenant-export-import.d.ts +5 -5
- package/dist/types/routes/management-api/tenants.d.ts +5 -5
- package/dist/types/routes/management-api/themes.d.ts +6 -6
- package/dist/types/routes/management-api/users.d.ts +7 -2
- package/dist/types/routes/proxy-control-plane/wfp-tenant-hosts.d.ts +122 -0
- package/dist/types/routes/proxy-control-plane/wfp-tenant-hosts.test.d.ts +1 -0
- package/dist/types/routes/universal-login/common.d.ts +12 -12
- package/dist/types/routes/universal-login/flow-api.d.ts +4 -4
- package/dist/types/routes/universal-login/identifier.d.ts +2 -2
- package/dist/types/routes/universal-login/index.d.ts +2 -2
- package/dist/types/routes/universal-login/u2-index.d.ts +5 -5
- package/dist/types/routes/universal-login/u2-routes.d.ts +5 -5
- package/package.json +5 -5
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { TenantsDataAdapter } from "@authhero/adapter-interfaces";
|
|
2
|
+
import type { ResolvedHost } from "@authhero/proxy";
|
|
3
|
+
import { type KvNamespaceWriter } from "@authhero/proxy";
|
|
4
|
+
/**
|
|
5
|
+
* Default dispatch-namespace binding name the synthesized route targets.
|
|
6
|
+
* Must match the `[[dispatch_namespaces]] binding = "..."` declared in the
|
|
7
|
+
* proxy Worker's wrangler config.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_WFP_DISPATCH_BINDING = "DISPATCHER";
|
|
10
|
+
/**
|
|
11
|
+
* Default script-name template, matching the WFP provisioner's default
|
|
12
|
+
* (`scriptNameTemplate` in `@authhero/cloudflare-adapter`). Only used when the
|
|
13
|
+
* tenant row carries no `worker_script_name` — the provisioner writes that
|
|
14
|
+
* back on provision, and it is always preferred.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_WFP_SCRIPT_NAME_TEMPLATE = "{tenant_id}";
|
|
17
|
+
/**
|
|
18
|
+
* The platform subdomain a WFP tenant is served on: `{tenant_id}.{issuerHost}`.
|
|
19
|
+
* Central so the publisher, the resolver, and any reconcile host-list
|
|
20
|
+
* derivation all agree on the exact host (and therefore the KV key).
|
|
21
|
+
*/
|
|
22
|
+
export declare function wfpTenantHost(tenantId: string, issuerHost: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Whether a tenant id can be served on a platform subdomain at all. Ids that
|
|
25
|
+
* fail this (mixed case, dots, other URL-unsafe characters) are skipped by
|
|
26
|
+
* `wrapTenantsAdapterWithWfpKvPublish` — publishing them would create KV keys
|
|
27
|
+
* the resolver can never match. Give WFP tenants lowercase DNS-label ids.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isWfpSubdomainSafeTenantId(tenantId: string): boolean;
|
|
30
|
+
export interface WfpTenantHostResolverOptions {
|
|
31
|
+
/** Tenant lookup — typically the control plane's tenants adapter. */
|
|
32
|
+
tenants: Pick<TenantsDataAdapter, "get">;
|
|
33
|
+
/**
|
|
34
|
+
* The issuer host tenant subdomains hang off (e.g. `token.example.com`,
|
|
35
|
+
* from `new URL(env.ISSUER).host`). A host resolves only when it is exactly
|
|
36
|
+
* one label under this — `wpf.token.example.com`, not `a.b.token.example.com`.
|
|
37
|
+
*/
|
|
38
|
+
issuerHost: string;
|
|
39
|
+
/** Dispatch-namespace binding name on the proxy Worker. */
|
|
40
|
+
dispatchBinding?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Fallback script-name template (`{tenant_id}` placeholder) for tenants
|
|
43
|
+
* provisioned before `worker_script_name` was written back. Must match the
|
|
44
|
+
* provisioner's template.
|
|
45
|
+
*/
|
|
46
|
+
scriptNameTemplate?: string;
|
|
47
|
+
/** Optional per-request timeout (ms) forwarded to the dispatch handler. */
|
|
48
|
+
dispatchTimeoutMs?: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build a `resolveHost` that maps a WFP tenant's platform subdomain
|
|
52
|
+
* (`{tenant_id}.{issuerHost}`) to a synthetic `ResolvedHost` whose single
|
|
53
|
+
* route dispatches into the tenant's own Worker via the proxy's
|
|
54
|
+
* `dispatch_namespace` handler.
|
|
55
|
+
*
|
|
56
|
+
* Resolves only tenants with `deployment_type: "wfp"` AND
|
|
57
|
+
* `provisioning_state: "ready"` — anything else returns `null` so the host
|
|
58
|
+
* falls through to the proxy's fallback chain (typically the shared control
|
|
59
|
+
* plane), which keeps a tenant serviceable while it is still provisioning.
|
|
60
|
+
* No `custom_domains` row is involved; the mapping is derived entirely from
|
|
61
|
+
* the tenant row, which stays the durable source of truth.
|
|
62
|
+
*
|
|
63
|
+
* Compose it behind the custom-domains resolver with `composeHostResolvers`
|
|
64
|
+
* so an explicit `custom_domains` row for the same host always wins.
|
|
65
|
+
*/
|
|
66
|
+
export declare function createWfpTenantHostResolver(options: WfpTenantHostResolverOptions): (host: string) => Promise<ResolvedHost | null>;
|
|
67
|
+
/**
|
|
68
|
+
* Chain host resolvers: first non-null wins, in argument order. Put the
|
|
69
|
+
* custom-domains resolver first so an explicit `custom_domains` row overrides
|
|
70
|
+
* a derived WFP tenant-subdomain route for the same host. Errors propagate —
|
|
71
|
+
* a failing layer should surface (and let the caller's own fallback take
|
|
72
|
+
* over), not be silently treated as a miss that could delete a live KV key.
|
|
73
|
+
*/
|
|
74
|
+
export declare function composeHostResolvers(...resolvers: Array<(host: string) => Promise<ResolvedHost | null>>): (host: string) => Promise<ResolvedHost | null>;
|
|
75
|
+
export interface WfpTenantsKvPublishOptions {
|
|
76
|
+
/** Tenants adapter whose writes should be mirrored to KV. */
|
|
77
|
+
tenants: TenantsDataAdapter;
|
|
78
|
+
/** KV namespace the resolved host blobs are published to. */
|
|
79
|
+
kv: KvNamespaceWriter;
|
|
80
|
+
/**
|
|
81
|
+
* Cross-tenant host resolver used to recompute the blob after a write —
|
|
82
|
+
* pass the SAME composed resolver (custom domains first, then
|
|
83
|
+
* `createWfpTenantHostResolver`) that the control plane serves over HTTP,
|
|
84
|
+
* so every publisher computes identical blobs for a host.
|
|
85
|
+
*/
|
|
86
|
+
resolveHost: (host: string) => Promise<ResolvedHost | null>;
|
|
87
|
+
/** The issuer host tenant subdomains hang off — see `wfpTenantHost`. */
|
|
88
|
+
issuerHost: string;
|
|
89
|
+
/** Key prefix; must match the proxy reader. Defaults to the shared default. */
|
|
90
|
+
keyPrefix?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Optional `ctx.waitUntil` so the fire-and-forget KV publish runs to
|
|
93
|
+
* completion without blocking (or failing) the originating write. When
|
|
94
|
+
* omitted, the publish is detached with its rejection swallowed.
|
|
95
|
+
*/
|
|
96
|
+
waitUntil?: (promise: Promise<unknown>) => void;
|
|
97
|
+
/** Optional hook invoked when a publish fails. */
|
|
98
|
+
onError?: (err: unknown, ctx: {
|
|
99
|
+
host: string;
|
|
100
|
+
op: string;
|
|
101
|
+
}) => void;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Wrap a control plane's `tenants` adapter so every WFP-tenant mutation
|
|
105
|
+
* republishes (or deletes) the tenant's platform-subdomain routing blob in KV
|
|
106
|
+
* — the tenants-table counterpart of `wrapProxyAdaptersWithKvPublish`.
|
|
107
|
+
*
|
|
108
|
+
* This is the single choke-point for WFP subdomain routing: the provisioner
|
|
109
|
+
* flips `provisioning_state` to `"ready"` through `tenants.update`, which
|
|
110
|
+
* publishes the dispatch route the moment the tenant Worker is servable —
|
|
111
|
+
* inline hook and durable-workflow paths alike, with no per-path wiring. A
|
|
112
|
+
* remove deletes the key, so a deprovisioned tenant's host falls back to the
|
|
113
|
+
* proxy's default chain instead of dispatching to a dead script.
|
|
114
|
+
*
|
|
115
|
+
* Shared (non-WFP) tenants never touch KV, and neither do wfp tenants whose
|
|
116
|
+
* id is not a lowercase DNS label (`isWfpSubdomainSafeTenantId`) — such ids
|
|
117
|
+
* cannot round-trip through a hostname, so publishing them would only create
|
|
118
|
+
* dead keys. Publishing is fire-and-forget; silent drift is corrected by the
|
|
119
|
+
* periodic reconcile (`backfillProxyHostsToKv` over `wfpTenantHost`-derived
|
|
120
|
+
* hosts).
|
|
121
|
+
*/
|
|
122
|
+
export declare function wrapTenantsAdapterWithWfpKvPublish(options: WfpTenantsKvPublishOptions): TenantsDataAdapter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -72,12 +72,12 @@ export declare function initJSXRoute(ctx: Context<{
|
|
|
72
72
|
background_color: string;
|
|
73
73
|
background_image_url: string;
|
|
74
74
|
page_layout: "center" | "left" | "right";
|
|
75
|
-
logo_placement?: "
|
|
75
|
+
logo_placement?: "widget" | "none" | "chip" | undefined;
|
|
76
76
|
};
|
|
77
77
|
widget: {
|
|
78
78
|
header_text_alignment: "center" | "left" | "right";
|
|
79
79
|
logo_height: number;
|
|
80
|
-
logo_position: "
|
|
80
|
+
logo_position: "center" | "left" | "right" | "none";
|
|
81
81
|
logo_url: string;
|
|
82
82
|
social_buttons_layout: "bottom" | "top";
|
|
83
83
|
};
|
|
@@ -357,7 +357,7 @@ export declare function initJSXRoute(ctx: Context<{
|
|
|
357
357
|
active?: boolean | undefined;
|
|
358
358
|
} | undefined;
|
|
359
359
|
signup?: {
|
|
360
|
-
status?: "
|
|
360
|
+
status?: "required" | "optional" | "disabled" | undefined;
|
|
361
361
|
verification?: {
|
|
362
362
|
active?: boolean | undefined;
|
|
363
363
|
} | undefined;
|
|
@@ -374,7 +374,7 @@ export declare function initJSXRoute(ctx: Context<{
|
|
|
374
374
|
active?: boolean | undefined;
|
|
375
375
|
} | undefined;
|
|
376
376
|
signup?: {
|
|
377
|
-
status?: "
|
|
377
|
+
status?: "required" | "optional" | "disabled" | undefined;
|
|
378
378
|
} | undefined;
|
|
379
379
|
validation?: {
|
|
380
380
|
max_length?: number | undefined;
|
|
@@ -391,7 +391,7 @@ export declare function initJSXRoute(ctx: Context<{
|
|
|
391
391
|
active?: boolean | undefined;
|
|
392
392
|
} | undefined;
|
|
393
393
|
signup?: {
|
|
394
|
-
status?: "
|
|
394
|
+
status?: "required" | "optional" | "disabled" | undefined;
|
|
395
395
|
} | undefined;
|
|
396
396
|
} | undefined;
|
|
397
397
|
} | undefined;
|
|
@@ -448,7 +448,7 @@ export declare function initJSXRoute(ctx: Context<{
|
|
|
448
448
|
custom_login_page_preview?: string | undefined;
|
|
449
449
|
form_template?: string | undefined;
|
|
450
450
|
addons?: Record<string, any> | undefined;
|
|
451
|
-
token_endpoint_auth_method?: "none" | "
|
|
451
|
+
token_endpoint_auth_method?: "none" | "client_secret_post" | "client_secret_basic" | "client_secret_jwt" | "private_key_jwt" | undefined;
|
|
452
452
|
client_metadata?: Record<string, string> | undefined;
|
|
453
453
|
hide_sign_up_disabled_error?: boolean | undefined;
|
|
454
454
|
mobile?: Record<string, any> | undefined;
|
|
@@ -793,12 +793,12 @@ export declare function initJSXRouteWithSession(ctx: Context<{
|
|
|
793
793
|
background_color: string;
|
|
794
794
|
background_image_url: string;
|
|
795
795
|
page_layout: "center" | "left" | "right";
|
|
796
|
-
logo_placement?: "
|
|
796
|
+
logo_placement?: "widget" | "none" | "chip" | undefined;
|
|
797
797
|
};
|
|
798
798
|
widget: {
|
|
799
799
|
header_text_alignment: "center" | "left" | "right";
|
|
800
800
|
logo_height: number;
|
|
801
|
-
logo_position: "
|
|
801
|
+
logo_position: "center" | "left" | "right" | "none";
|
|
802
802
|
logo_url: string;
|
|
803
803
|
social_buttons_layout: "bottom" | "top";
|
|
804
804
|
};
|
|
@@ -1078,7 +1078,7 @@ export declare function initJSXRouteWithSession(ctx: Context<{
|
|
|
1078
1078
|
active?: boolean | undefined;
|
|
1079
1079
|
} | undefined;
|
|
1080
1080
|
signup?: {
|
|
1081
|
-
status?: "
|
|
1081
|
+
status?: "required" | "optional" | "disabled" | undefined;
|
|
1082
1082
|
verification?: {
|
|
1083
1083
|
active?: boolean | undefined;
|
|
1084
1084
|
} | undefined;
|
|
@@ -1095,7 +1095,7 @@ export declare function initJSXRouteWithSession(ctx: Context<{
|
|
|
1095
1095
|
active?: boolean | undefined;
|
|
1096
1096
|
} | undefined;
|
|
1097
1097
|
signup?: {
|
|
1098
|
-
status?: "
|
|
1098
|
+
status?: "required" | "optional" | "disabled" | undefined;
|
|
1099
1099
|
} | undefined;
|
|
1100
1100
|
validation?: {
|
|
1101
1101
|
max_length?: number | undefined;
|
|
@@ -1112,7 +1112,7 @@ export declare function initJSXRouteWithSession(ctx: Context<{
|
|
|
1112
1112
|
active?: boolean | undefined;
|
|
1113
1113
|
} | undefined;
|
|
1114
1114
|
signup?: {
|
|
1115
|
-
status?: "
|
|
1115
|
+
status?: "required" | "optional" | "disabled" | undefined;
|
|
1116
1116
|
} | undefined;
|
|
1117
1117
|
} | undefined;
|
|
1118
1118
|
} | undefined;
|
|
@@ -1169,7 +1169,7 @@ export declare function initJSXRouteWithSession(ctx: Context<{
|
|
|
1169
1169
|
custom_login_page_preview?: string | undefined;
|
|
1170
1170
|
form_template?: string | undefined;
|
|
1171
1171
|
addons?: Record<string, any> | undefined;
|
|
1172
|
-
token_endpoint_auth_method?: "none" | "
|
|
1172
|
+
token_endpoint_auth_method?: "none" | "client_secret_post" | "client_secret_basic" | "client_secret_jwt" | "private_key_jwt" | undefined;
|
|
1173
1173
|
client_metadata?: Record<string, string> | undefined;
|
|
1174
1174
|
hide_sign_up_disabled_error?: boolean | undefined;
|
|
1175
1175
|
mobile?: Record<string, any> | undefined;
|
|
@@ -27,7 +27,7 @@ export declare const flowApiRoutes: OpenAPIHono<{
|
|
|
27
27
|
output: {
|
|
28
28
|
screen: {
|
|
29
29
|
action: string;
|
|
30
|
-
method: "
|
|
30
|
+
method: "POST" | "GET";
|
|
31
31
|
components: {
|
|
32
32
|
id: string;
|
|
33
33
|
type: string;
|
|
@@ -107,7 +107,7 @@ export declare const flowApiRoutes: OpenAPIHono<{
|
|
|
107
107
|
output: {
|
|
108
108
|
screen: {
|
|
109
109
|
action: string;
|
|
110
|
-
method: "
|
|
110
|
+
method: "POST" | "GET";
|
|
111
111
|
components: {
|
|
112
112
|
id: string;
|
|
113
113
|
type: string;
|
|
@@ -204,7 +204,7 @@ export declare const flowApiRoutes: OpenAPIHono<{
|
|
|
204
204
|
output: {
|
|
205
205
|
screen: {
|
|
206
206
|
action: string;
|
|
207
|
-
method: "
|
|
207
|
+
method: "POST" | "GET";
|
|
208
208
|
components: {
|
|
209
209
|
id: string;
|
|
210
210
|
type: string;
|
|
@@ -319,7 +319,7 @@ export declare const flowApiRoutes: OpenAPIHono<{
|
|
|
319
319
|
output: {
|
|
320
320
|
screen: {
|
|
321
321
|
action: string;
|
|
322
|
-
method: "
|
|
322
|
+
method: "POST" | "GET";
|
|
323
323
|
components: {
|
|
324
324
|
id: string;
|
|
325
325
|
type: string;
|
|
@@ -30,7 +30,7 @@ export declare const identifierRoutes: OpenAPIHono<{
|
|
|
30
30
|
} & {
|
|
31
31
|
form: {
|
|
32
32
|
username: string;
|
|
33
|
-
login_selection?: "
|
|
33
|
+
login_selection?: "password" | "code" | undefined;
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
36
|
output: {};
|
|
@@ -44,7 +44,7 @@ export declare const identifierRoutes: OpenAPIHono<{
|
|
|
44
44
|
} & {
|
|
45
45
|
form: {
|
|
46
46
|
username: string;
|
|
47
|
-
login_selection?: "
|
|
47
|
+
login_selection?: "password" | "code" | undefined;
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
50
|
output: {};
|
|
@@ -515,7 +515,7 @@ export default function create(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
515
515
|
} & {
|
|
516
516
|
form: {
|
|
517
517
|
username: string;
|
|
518
|
-
login_selection?: "
|
|
518
|
+
login_selection?: "password" | "code" | undefined;
|
|
519
519
|
};
|
|
520
520
|
};
|
|
521
521
|
output: {};
|
|
@@ -529,7 +529,7 @@ export default function create(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
529
529
|
} & {
|
|
530
530
|
form: {
|
|
531
531
|
username: string;
|
|
532
|
-
login_selection?: "
|
|
532
|
+
login_selection?: "password" | "code" | undefined;
|
|
533
533
|
};
|
|
534
534
|
};
|
|
535
535
|
output: {};
|
|
@@ -165,7 +165,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
165
165
|
$get: {
|
|
166
166
|
input: {
|
|
167
167
|
param: {
|
|
168
|
-
screen: "
|
|
168
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "account" | "enter-password" | "impersonate" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
169
169
|
};
|
|
170
170
|
} & {
|
|
171
171
|
query: {
|
|
@@ -181,7 +181,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
181
181
|
} | {
|
|
182
182
|
input: {
|
|
183
183
|
param: {
|
|
184
|
-
screen: "
|
|
184
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "account" | "enter-password" | "impersonate" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
185
185
|
};
|
|
186
186
|
} & {
|
|
187
187
|
query: {
|
|
@@ -197,7 +197,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
197
197
|
} | {
|
|
198
198
|
input: {
|
|
199
199
|
param: {
|
|
200
|
-
screen: "
|
|
200
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "account" | "enter-password" | "impersonate" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
201
201
|
};
|
|
202
202
|
} & {
|
|
203
203
|
query: {
|
|
@@ -217,7 +217,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
217
217
|
$post: {
|
|
218
218
|
input: {
|
|
219
219
|
param: {
|
|
220
|
-
screen: "
|
|
220
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "enter-password" | "impersonate" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
221
221
|
};
|
|
222
222
|
} & {
|
|
223
223
|
query: {
|
|
@@ -235,7 +235,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
235
235
|
} | {
|
|
236
236
|
input: {
|
|
237
237
|
param: {
|
|
238
|
-
screen: "
|
|
238
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "enter-password" | "impersonate" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
239
239
|
};
|
|
240
240
|
} & {
|
|
241
241
|
query: {
|
|
@@ -170,7 +170,7 @@ export declare const u2Routes: OpenAPIHono<{
|
|
|
170
170
|
$get: {
|
|
171
171
|
input: {
|
|
172
172
|
param: {
|
|
173
|
-
screen: "
|
|
173
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "account" | "enter-password" | "impersonate" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
174
174
|
};
|
|
175
175
|
} & {
|
|
176
176
|
query: {
|
|
@@ -186,7 +186,7 @@ export declare const u2Routes: OpenAPIHono<{
|
|
|
186
186
|
} | {
|
|
187
187
|
input: {
|
|
188
188
|
param: {
|
|
189
|
-
screen: "
|
|
189
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "account" | "enter-password" | "impersonate" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
190
190
|
};
|
|
191
191
|
} & {
|
|
192
192
|
query: {
|
|
@@ -202,7 +202,7 @@ export declare const u2Routes: OpenAPIHono<{
|
|
|
202
202
|
} | {
|
|
203
203
|
input: {
|
|
204
204
|
param: {
|
|
205
|
-
screen: "
|
|
205
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "account" | "enter-password" | "impersonate" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
206
206
|
};
|
|
207
207
|
} & {
|
|
208
208
|
query: {
|
|
@@ -222,7 +222,7 @@ export declare const u2Routes: OpenAPIHono<{
|
|
|
222
222
|
$post: {
|
|
223
223
|
input: {
|
|
224
224
|
param: {
|
|
225
|
-
screen: "
|
|
225
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "enter-password" | "impersonate" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
226
226
|
};
|
|
227
227
|
} & {
|
|
228
228
|
query: {
|
|
@@ -240,7 +240,7 @@ export declare const u2Routes: OpenAPIHono<{
|
|
|
240
240
|
} | {
|
|
241
241
|
input: {
|
|
242
242
|
param: {
|
|
243
|
-
screen: "
|
|
243
|
+
screen: "login" | "signup" | "reset-password" | "consent" | "enter-password" | "impersonate" | "reset-password/request" | "reset-password/code" | "login/identifier" | "login/email-otp-challenge" | "login/sms-otp-challenge" | "login/login-passwordless-identifier" | "mfa/login-options" | "mfa/totp-challenge" | "mfa/totp-enrollment" | "mfa/phone-challenge" | "mfa/phone-enrollment" | "passkey/challenge" | "passkey/enrollment" | "passkey/enrollment-nudge" | "account/profile" | "account/security" | "account/security/totp-enrollment" | "account/security/phone-enrollment" | "account/linked" | "account/delete" | "account/passkeys" | "connect/start" | "connect/select-tenant";
|
|
244
244
|
};
|
|
245
245
|
} & {
|
|
246
246
|
query: {
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"type": "git",
|
|
12
12
|
"url": "https://github.com/markusahlstrand/authhero"
|
|
13
13
|
},
|
|
14
|
-
"version": "8.
|
|
14
|
+
"version": "8.22.0",
|
|
15
15
|
"files": [
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"vite": "^8.0.14",
|
|
64
64
|
"vite-plugin-dts": "^4.5.4",
|
|
65
65
|
"vitest": "^4.1.7",
|
|
66
|
-
"@authhero/kysely-adapter": "11.
|
|
67
|
-
"@authhero/widget": "0.34.
|
|
66
|
+
"@authhero/kysely-adapter": "11.17.0",
|
|
67
|
+
"@authhero/widget": "0.34.11"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@peculiar/x509": "^1.14.0",
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"qrcode": "^1.5.4",
|
|
83
83
|
"sanitize-html": "^2.17.4",
|
|
84
84
|
"xstate": "^5.31.1",
|
|
85
|
-
"@authhero/adapter-interfaces": "3.
|
|
86
|
-
"@authhero/proxy": "0.
|
|
85
|
+
"@authhero/adapter-interfaces": "3.11.0",
|
|
86
|
+
"@authhero/proxy": "0.9.1",
|
|
87
87
|
"@authhero/saml": "0.4.2"
|
|
88
88
|
},
|
|
89
89
|
"peerDependencies": {
|