authhero 9.23.0 → 9.23.1
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/authhero-widget.esm.js +1 -1
- package/dist/assets/u/widget/{p-8b981cd0.entry.js → p-91459994.entry.js} +1 -1
- package/dist/authhero.cjs +119 -112
- package/dist/authhero.d.ts +307 -307
- package/dist/authhero.mjs +13438 -13389
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/generated/locale-types.d.ts +6 -0
- package/dist/types/index.d.ts +307 -307
- package/dist/types/routes/auth-api/index.d.ts +22 -22
- package/dist/types/routes/management-api/branding.d.ts +5 -5
- package/dist/types/routes/management-api/index.d.ts +73 -73
- package/dist/types/routes/management-api/prompts.d.ts +6 -6
- package/dist/types/routes/universal-login/index.d.ts +4 -4
- package/dist/types/routes/universal-login/u2-form-node.d.ts +2 -2
- package/dist/types/routes/universal-login/u2-index.d.ts +7 -7
- package/dist/types/routes/universal-login/u2-routes.d.ts +5 -5
- package/dist/types/routes/universal-login/u2-widget-page.d.ts +13 -1
- package/package.json +4 -4
|
@@ -52,7 +52,7 @@ export declare const promptsRoutes: OpenAPIHono<{
|
|
|
52
52
|
};
|
|
53
53
|
};
|
|
54
54
|
output: {
|
|
55
|
-
prompt: "
|
|
55
|
+
prompt: "common" | "consent" | "device-flow" | "email-otp-challenge" | "email-verification" | "invitation" | "login" | "login-id" | "login-password" | "login-passwordless" | "mfa" | "mfa-email" | "mfa-otp" | "mfa-phone" | "mfa-login-options" | "mfa-push" | "mfa-recovery-code" | "mfa-voice" | "mfa-webauthn" | "passkeys" | "organizations" | "reset-password" | "signup" | "signup-id" | "signup-password" | "status" | "captcha" | "custom-form";
|
|
56
56
|
language: string;
|
|
57
57
|
}[];
|
|
58
58
|
outputFormat: "json";
|
|
@@ -90,7 +90,7 @@ export declare const promptsRoutes: OpenAPIHono<{
|
|
|
90
90
|
$get: {
|
|
91
91
|
input: {
|
|
92
92
|
param: {
|
|
93
|
-
prompt: "
|
|
93
|
+
prompt: "common" | "consent" | "device-flow" | "email-otp-challenge" | "email-verification" | "invitation" | "login" | "login-id" | "login-password" | "login-passwordless" | "mfa" | "mfa-email" | "mfa-otp" | "mfa-phone" | "mfa-login-options" | "mfa-push" | "mfa-recovery-code" | "mfa-voice" | "mfa-webauthn" | "passkeys" | "organizations" | "reset-password" | "signup" | "signup-id" | "signup-password" | "status" | "captcha" | "custom-form";
|
|
94
94
|
language: string;
|
|
95
95
|
};
|
|
96
96
|
} & {
|
|
@@ -112,7 +112,7 @@ export declare const promptsRoutes: OpenAPIHono<{
|
|
|
112
112
|
$put: {
|
|
113
113
|
input: {
|
|
114
114
|
param: {
|
|
115
|
-
prompt: "
|
|
115
|
+
prompt: "common" | "consent" | "device-flow" | "email-otp-challenge" | "email-verification" | "invitation" | "login" | "login-id" | "login-password" | "login-passwordless" | "mfa" | "mfa-email" | "mfa-otp" | "mfa-phone" | "mfa-login-options" | "mfa-push" | "mfa-recovery-code" | "mfa-voice" | "mfa-webauthn" | "passkeys" | "organizations" | "reset-password" | "signup" | "signup-id" | "signup-password" | "status" | "captcha" | "custom-form";
|
|
116
116
|
language: string;
|
|
117
117
|
};
|
|
118
118
|
} & {
|
|
@@ -136,7 +136,7 @@ export declare const promptsRoutes: OpenAPIHono<{
|
|
|
136
136
|
$delete: {
|
|
137
137
|
input: {
|
|
138
138
|
param: {
|
|
139
|
-
prompt: "
|
|
139
|
+
prompt: "common" | "consent" | "device-flow" | "email-otp-challenge" | "email-verification" | "invitation" | "login" | "login-id" | "login-password" | "login-passwordless" | "mfa" | "mfa-email" | "mfa-otp" | "mfa-phone" | "mfa-login-options" | "mfa-push" | "mfa-recovery-code" | "mfa-voice" | "mfa-webauthn" | "passkeys" | "organizations" | "reset-password" | "signup" | "signup-id" | "signup-password" | "status" | "captcha" | "custom-form";
|
|
140
140
|
language: string;
|
|
141
141
|
};
|
|
142
142
|
} & {
|
|
@@ -154,7 +154,7 @@ export declare const promptsRoutes: OpenAPIHono<{
|
|
|
154
154
|
$get: {
|
|
155
155
|
input: {
|
|
156
156
|
param: {
|
|
157
|
-
prompt: "
|
|
157
|
+
prompt: "login" | "login-id" | "login-password" | "login-passwordless" | "signup" | "signup-id" | "signup-password" | "login-passwordless-sms-otp" | "login-passwordless-email-code";
|
|
158
158
|
};
|
|
159
159
|
} & {
|
|
160
160
|
header: {
|
|
@@ -180,7 +180,7 @@ export declare const promptsRoutes: OpenAPIHono<{
|
|
|
180
180
|
$put: {
|
|
181
181
|
input: {
|
|
182
182
|
param: {
|
|
183
|
-
prompt: "
|
|
183
|
+
prompt: "login" | "login-id" | "login-password" | "login-passwordless" | "signup" | "signup-id" | "signup-password" | "login-passwordless-sms-otp" | "login-passwordless-email-code";
|
|
184
184
|
};
|
|
185
185
|
} & {
|
|
186
186
|
header: {
|
|
@@ -63,7 +63,7 @@ export default function create(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
63
63
|
};
|
|
64
64
|
output: {};
|
|
65
65
|
outputFormat: string;
|
|
66
|
-
status:
|
|
66
|
+
status: 200;
|
|
67
67
|
} | {
|
|
68
68
|
input: {
|
|
69
69
|
param: {
|
|
@@ -77,7 +77,7 @@ export default function create(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
77
77
|
};
|
|
78
78
|
output: {};
|
|
79
79
|
outputFormat: string;
|
|
80
|
-
status:
|
|
80
|
+
status: 404;
|
|
81
81
|
};
|
|
82
82
|
};
|
|
83
83
|
} & {
|
|
@@ -97,7 +97,7 @@ export default function create(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
97
97
|
};
|
|
98
98
|
output: {};
|
|
99
99
|
outputFormat: string;
|
|
100
|
-
status:
|
|
100
|
+
status: 200;
|
|
101
101
|
} | {
|
|
102
102
|
input: {
|
|
103
103
|
param: {
|
|
@@ -113,7 +113,7 @@ export default function create(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
113
113
|
};
|
|
114
114
|
output: {};
|
|
115
115
|
outputFormat: string;
|
|
116
|
-
status:
|
|
116
|
+
status: 404;
|
|
117
117
|
};
|
|
118
118
|
};
|
|
119
119
|
}, "/forms"> & import("hono/types").MergeSchemaPath<{
|
|
@@ -28,7 +28,7 @@ export declare const u2FormNodeRoutes: OpenAPIHono<{
|
|
|
28
28
|
};
|
|
29
29
|
output: {};
|
|
30
30
|
outputFormat: string;
|
|
31
|
-
status:
|
|
31
|
+
status: 200;
|
|
32
32
|
} | {
|
|
33
33
|
input: {
|
|
34
34
|
param: {
|
|
@@ -42,7 +42,7 @@ export declare const u2FormNodeRoutes: OpenAPIHono<{
|
|
|
42
42
|
};
|
|
43
43
|
output: {};
|
|
44
44
|
outputFormat: string;
|
|
45
|
-
status:
|
|
45
|
+
status: 404;
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
48
|
} & {
|
|
@@ -165,7 +165,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
165
165
|
$get: {
|
|
166
166
|
input: {
|
|
167
167
|
param: {
|
|
168
|
-
screen: "
|
|
168
|
+
screen: "account" | "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "account" | "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "account" | "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: {
|
|
@@ -267,7 +267,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
267
267
|
};
|
|
268
268
|
output: {};
|
|
269
269
|
outputFormat: string;
|
|
270
|
-
status:
|
|
270
|
+
status: 200;
|
|
271
271
|
} | {
|
|
272
272
|
input: {
|
|
273
273
|
param: {
|
|
@@ -281,7 +281,7 @@ export default function createU2App(config: AuthHeroConfig): OpenAPIHono<{
|
|
|
281
281
|
};
|
|
282
282
|
output: {};
|
|
283
283
|
outputFormat: string;
|
|
284
|
-
status:
|
|
284
|
+
status: 404;
|
|
285
285
|
};
|
|
286
286
|
};
|
|
287
287
|
} & {
|
|
@@ -170,7 +170,7 @@ export declare const u2Routes: OpenAPIHono<{
|
|
|
170
170
|
$get: {
|
|
171
171
|
input: {
|
|
172
172
|
param: {
|
|
173
|
-
screen: "
|
|
173
|
+
screen: "account" | "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "account" | "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "account" | "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "try-connection-result" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: "consent" | "login" | "reset-password" | "signup" | "impersonate" | "enter-password" | "reset-password/request" | "reset-password/code" | "login/email-verification" | "login/email-verification-sent" | "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: {
|
|
@@ -110,7 +110,19 @@ export type WidgetPageProps = {
|
|
|
110
110
|
* modal supplies the frame, and runs the resize/relay script.
|
|
111
111
|
*/
|
|
112
112
|
embed?: EmbedLoginContext;
|
|
113
|
+
/**
|
|
114
|
+
* Set when the User-Agent is an in-app/embedded browser (Instagram, Facebook,
|
|
115
|
+
* WebViews, ...) that tends to drop sessions. Renders a banner recommending
|
|
116
|
+
* the device's default browser.
|
|
117
|
+
*/
|
|
118
|
+
embeddedBrowser?: {
|
|
119
|
+
name?: string;
|
|
120
|
+
};
|
|
113
121
|
};
|
|
122
|
+
/** Detects in-app browsers from the request's User-Agent. */
|
|
123
|
+
export declare function detectEmbeddedBrowser(userAgent: string | undefined): {
|
|
124
|
+
name?: string;
|
|
125
|
+
} | undefined;
|
|
114
126
|
/** Localized display names for the language picker, in the given order. */
|
|
115
127
|
export declare function buildLanguageOptions(availableLanguages?: string[]): LanguageOption[] | undefined;
|
|
116
128
|
/** The short "Terms & Privacy" label, in the page's language. */
|
|
@@ -130,7 +142,7 @@ export declare function buildHeadEssentials(opts: {
|
|
|
130
142
|
branding?: WidgetPageProps["branding"];
|
|
131
143
|
theme?: any;
|
|
132
144
|
}): string;
|
|
133
|
-
export declare function WidgetPage({ widgetHtml, screenId, branding, theme, themePageBackground, clientName, poweredByLogo, language, availableLanguages, termsAndConditionsUrl, darkMode, logoPosition, extraScript, customBodyHtml, embed, }: WidgetPageProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
|
|
145
|
+
export declare function WidgetPage({ widgetHtml, screenId, branding, theme, themePageBackground, clientName, poweredByLogo, language, availableLanguages, termsAndConditionsUrl, darkMode, logoPosition, extraScript, customBodyHtml, embed, embeddedBrowser, }: WidgetPageProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
|
|
134
146
|
/**
|
|
135
147
|
* Reads `theme.page_background.logo_placement` and returns the resolved
|
|
136
148
|
* page-level `logoPosition` plus a theme variant suitable for passing to
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"type": "git",
|
|
12
12
|
"url": "https://github.com/sesamyab/authhero"
|
|
13
13
|
},
|
|
14
|
-
"version": "9.23.
|
|
14
|
+
"version": "9.23.1",
|
|
15
15
|
"files": [
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"vite-plugin-dts": "^4.5.4",
|
|
65
65
|
"vitest": "^4.1.7",
|
|
66
66
|
"@authhero/kysely-adapter": "12.14.0",
|
|
67
|
-
"@authhero/widget": "0.41.
|
|
67
|
+
"@authhero/widget": "0.41.1"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@peculiar/x509": "^1.14.3",
|
|
@@ -80,9 +80,9 @@
|
|
|
80
80
|
"qrcode": "^1.5.4",
|
|
81
81
|
"sanitize-html": "^2.17.4",
|
|
82
82
|
"xstate": "^5.31.1",
|
|
83
|
-
"@authhero/adapter-interfaces": "4.20.0",
|
|
84
83
|
"@authhero/proxy": "0.11.6",
|
|
85
|
-
"@authhero/saml": "0.5.18"
|
|
84
|
+
"@authhero/saml": "0.5.18",
|
|
85
|
+
"@authhero/adapter-interfaces": "4.20.0"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
88
|
"@authhero/widget": "^0.1.0",
|