@stackframe/react 2.7.20
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/CHANGELOG.md +1415 -0
- package/LICENSE +7 -0
- package/README.md +26 -0
- package/dist/components/credential-sign-in.d.mts +5 -0
- package/dist/components/credential-sign-in.d.ts +5 -0
- package/dist/components/credential-sign-in.js +103 -0
- package/dist/components/credential-sign-in.js.map +1 -0
- package/dist/components/credential-sign-up.d.mts +7 -0
- package/dist/components/credential-sign-up.d.ts +7 -0
- package/dist/components/credential-sign-up.js +138 -0
- package/dist/components/credential-sign-up.js.map +1 -0
- package/dist/components/elements/form-warning.d.mts +7 -0
- package/dist/components/elements/form-warning.d.ts +7 -0
- package/dist/components/elements/form-warning.js +39 -0
- package/dist/components/elements/form-warning.js.map +1 -0
- package/dist/components/elements/maybe-full-page.d.mts +11 -0
- package/dist/components/elements/maybe-full-page.d.ts +11 -0
- package/dist/components/elements/maybe-full-page.js +74 -0
- package/dist/components/elements/maybe-full-page.js.map +1 -0
- package/dist/components/elements/separator-with-text.d.mts +7 -0
- package/dist/components/elements/separator-with-text.d.ts +7 -0
- package/dist/components/elements/separator-with-text.js +41 -0
- package/dist/components/elements/separator-with-text.js.map +1 -0
- package/dist/components/elements/sidebar-layout.d.mts +19 -0
- package/dist/components/elements/sidebar-layout.d.ts +19 -0
- package/dist/components/elements/sidebar-layout.js +126 -0
- package/dist/components/elements/sidebar-layout.js.map +1 -0
- package/dist/components/elements/ssr-layout-effect.d.mts +8 -0
- package/dist/components/elements/ssr-layout-effect.d.ts +8 -0
- package/dist/components/elements/ssr-layout-effect.js +47 -0
- package/dist/components/elements/ssr-layout-effect.js.map +1 -0
- package/dist/components/elements/user-avatar.d.mts +13 -0
- package/dist/components/elements/user-avatar.d.ts +13 -0
- package/dist/components/elements/user-avatar.js +41 -0
- package/dist/components/elements/user-avatar.js.map +1 -0
- package/dist/components/iframe-preventer.d.mts +8 -0
- package/dist/components/iframe-preventer.d.ts +8 -0
- package/dist/components/iframe-preventer.js +52 -0
- package/dist/components/iframe-preventer.js.map +1 -0
- package/dist/components/link.d.mts +14 -0
- package/dist/components/link.d.ts +14 -0
- package/dist/components/link.js +51 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/magic-link-sign-in.d.mts +5 -0
- package/dist/components/magic-link-sign-in.d.ts +5 -0
- package/dist/components/magic-link-sign-in.js +151 -0
- package/dist/components/magic-link-sign-in.js.map +1 -0
- package/dist/components/message-cards/known-error-message-card.d.mts +9 -0
- package/dist/components/message-cards/known-error-message-card.d.ts +9 -0
- package/dist/components/message-cards/known-error-message-card.js +61 -0
- package/dist/components/message-cards/known-error-message-card.js.map +1 -0
- package/dist/components/message-cards/message-card.d.mts +14 -0
- package/dist/components/message-cards/message-card.d.ts +14 -0
- package/dist/components/message-cards/message-card.js +45 -0
- package/dist/components/message-cards/message-card.js.map +1 -0
- package/dist/components/message-cards/predefined-message-card.d.mts +8 -0
- package/dist/components/message-cards/predefined-message-card.d.ts +8 -0
- package/dist/components/message-cards/predefined-message-card.js +107 -0
- package/dist/components/message-cards/predefined-message-card.js.map +1 -0
- package/dist/components/oauth-button-group.d.mts +14 -0
- package/dist/components/oauth-button-group.d.ts +14 -0
- package/dist/components/oauth-button-group.js +43 -0
- package/dist/components/oauth-button-group.js.map +1 -0
- package/dist/components/oauth-button.d.mts +8 -0
- package/dist/components/oauth-button.d.ts +8 -0
- package/dist/components/oauth-button.js +210 -0
- package/dist/components/oauth-button.js.map +1 -0
- package/dist/components/passkey-button.d.mts +7 -0
- package/dist/components/passkey-button.d.ts +7 -0
- package/dist/components/passkey-button.js +58 -0
- package/dist/components/passkey-button.js.map +1 -0
- package/dist/components/profile-image-editor.d.mts +11 -0
- package/dist/components/profile-image-editor.d.ts +11 -0
- package/dist/components/profile-image-editor.js +162 -0
- package/dist/components/profile-image-editor.js.map +1 -0
- package/dist/components/selected-team-switcher.d.mts +21 -0
- package/dist/components/selected-team-switcher.d.ts +21 -0
- package/dist/components/selected-team-switcher.js +119 -0
- package/dist/components/selected-team-switcher.js.map +1 -0
- package/dist/components/team-icon.d.mts +18 -0
- package/dist/components/team-icon.d.ts +18 -0
- package/dist/components/team-icon.js +39 -0
- package/dist/components/team-icon.js.map +1 -0
- package/dist/components/user-button.d.mts +15 -0
- package/dist/components/user-button.d.ts +15 -0
- package/dist/components/user-button.js +120 -0
- package/dist/components/user-button.js.map +1 -0
- package/dist/components-page/account-settings.d.mts +24 -0
- package/dist/components-page/account-settings.d.ts +24 -0
- package/dist/components-page/account-settings.js +1095 -0
- package/dist/components-page/account-settings.js.map +1 -0
- package/dist/components-page/auth-page.d.mts +24 -0
- package/dist/components-page/auth-page.d.ts +24 -0
- package/dist/components-page/auth-page.js +123 -0
- package/dist/components-page/auth-page.js.map +1 -0
- package/dist/components-page/email-verification.d.mts +8 -0
- package/dist/components-page/email-verification.d.ts +8 -0
- package/dist/components-page/email-verification.js +100 -0
- package/dist/components-page/email-verification.js.map +1 -0
- package/dist/components-page/error-page.d.mts +8 -0
- package/dist/components-page/error-page.d.ts +8 -0
- package/dist/components-page/error-page.js +97 -0
- package/dist/components-page/error-page.js.map +1 -0
- package/dist/components-page/forgot-password.d.mts +10 -0
- package/dist/components-page/forgot-password.d.ts +10 -0
- package/dist/components-page/forgot-password.js +117 -0
- package/dist/components-page/forgot-password.js.map +1 -0
- package/dist/components-page/magic-link-callback.d.mts +8 -0
- package/dist/components-page/magic-link-callback.d.ts +8 -0
- package/dist/components-page/magic-link-callback.js +110 -0
- package/dist/components-page/magic-link-callback.js.map +1 -0
- package/dist/components-page/oauth-callback.d.mts +7 -0
- package/dist/components-page/oauth-callback.d.ts +7 -0
- package/dist/components-page/oauth-callback.js +75 -0
- package/dist/components-page/oauth-callback.js.map +1 -0
- package/dist/components-page/password-reset.d.mts +12 -0
- package/dist/components-page/password-reset.d.ts +12 -0
- package/dist/components-page/password-reset.js +179 -0
- package/dist/components-page/password-reset.js.map +1 -0
- package/dist/components-page/sign-in.d.mts +10 -0
- package/dist/components-page/sign-in.d.ts +10 -0
- package/dist/components-page/sign-in.js +44 -0
- package/dist/components-page/sign-in.js.map +1 -0
- package/dist/components-page/sign-out.d.mts +7 -0
- package/dist/components-page/sign-out.d.ts +7 -0
- package/dist/components-page/sign-out.js +57 -0
- package/dist/components-page/sign-out.js.map +1 -0
- package/dist/components-page/sign-up.d.mts +11 -0
- package/dist/components-page/sign-up.d.ts +11 -0
- package/dist/components-page/sign-up.js +47 -0
- package/dist/components-page/sign-up.js.map +1 -0
- package/dist/components-page/stack-handler.d.mts +51 -0
- package/dist/components-page/stack-handler.d.ts +51 -0
- package/dist/components-page/stack-handler.js +244 -0
- package/dist/components-page/stack-handler.js.map +1 -0
- package/dist/components-page/team-creation.d.mts +7 -0
- package/dist/components-page/team-creation.d.ts +7 -0
- package/dist/components-page/team-creation.js +92 -0
- package/dist/components-page/team-creation.js.map +1 -0
- package/dist/components-page/team-invitation.d.mts +8 -0
- package/dist/components-page/team-invitation.d.ts +8 -0
- package/dist/components-page/team-invitation.js +144 -0
- package/dist/components-page/team-invitation.js.map +1 -0
- package/dist/esm/components/credential-sign-in.js +79 -0
- package/dist/esm/components/credential-sign-in.js.map +1 -0
- package/dist/esm/components/credential-sign-up.js +104 -0
- package/dist/esm/components/credential-sign-up.js.map +1 -0
- package/dist/esm/components/elements/form-warning.js +15 -0
- package/dist/esm/components/elements/form-warning.js.map +1 -0
- package/dist/esm/components/elements/maybe-full-page.js +50 -0
- package/dist/esm/components/elements/maybe-full-page.js.map +1 -0
- package/dist/esm/components/elements/separator-with-text.js +17 -0
- package/dist/esm/components/elements/separator-with-text.js.map +1 -0
- package/dist/esm/components/elements/sidebar-layout.js +102 -0
- package/dist/esm/components/elements/sidebar-layout.js.map +1 -0
- package/dist/esm/components/elements/ssr-layout-effect.js +23 -0
- package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -0
- package/dist/esm/components/elements/user-avatar.js +16 -0
- package/dist/esm/components/elements/user-avatar.js.map +1 -0
- package/dist/esm/components/iframe-preventer.js +28 -0
- package/dist/esm/components/iframe-preventer.js.map +1 -0
- package/dist/esm/components/link.js +26 -0
- package/dist/esm/components/link.js.map +1 -0
- package/dist/esm/components/magic-link-sign-in.js +127 -0
- package/dist/esm/components/magic-link-sign-in.js.map +1 -0
- package/dist/esm/components/message-cards/known-error-message-card.js +37 -0
- package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -0
- package/dist/esm/components/message-cards/message-card.js +21 -0
- package/dist/esm/components/message-cards/message-card.js.map +1 -0
- package/dist/esm/components/message-cards/predefined-message-card.js +83 -0
- package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -0
- package/dist/esm/components/oauth-button-group.js +19 -0
- package/dist/esm/components/oauth-button-group.js.map +1 -0
- package/dist/esm/components/oauth-button.js +176 -0
- package/dist/esm/components/oauth-button.js.map +1 -0
- package/dist/esm/components/passkey-button.js +34 -0
- package/dist/esm/components/passkey-button.js.map +1 -0
- package/dist/esm/components/profile-image-editor.js +126 -0
- package/dist/esm/components/profile-image-editor.js.map +1 -0
- package/dist/esm/components/selected-team-switcher.js +107 -0
- package/dist/esm/components/selected-team-switcher.js.map +1 -0
- package/dist/esm/components/team-icon.js +14 -0
- package/dist/esm/components/team-icon.js.map +1 -0
- package/dist/esm/components/user-button.js +96 -0
- package/dist/esm/components/user-button.js.map +1 -0
- package/dist/esm/components-page/account-settings.js +1058 -0
- package/dist/esm/components-page/account-settings.js.map +1 -0
- package/dist/esm/components-page/auth-page.js +99 -0
- package/dist/esm/components-page/auth-page.js.map +1 -0
- package/dist/esm/components-page/email-verification.js +66 -0
- package/dist/esm/components-page/email-verification.js.map +1 -0
- package/dist/esm/components-page/error-page.js +73 -0
- package/dist/esm/components-page/error-page.js.map +1 -0
- package/dist/esm/components-page/forgot-password.js +92 -0
- package/dist/esm/components-page/forgot-password.js.map +1 -0
- package/dist/esm/components-page/magic-link-callback.js +76 -0
- package/dist/esm/components-page/magic-link-callback.js.map +1 -0
- package/dist/esm/components-page/oauth-callback.js +51 -0
- package/dist/esm/components-page/oauth-callback.js.map +1 -0
- package/dist/esm/components-page/password-reset.js +145 -0
- package/dist/esm/components-page/password-reset.js.map +1 -0
- package/dist/esm/components-page/sign-in.js +19 -0
- package/dist/esm/components-page/sign-in.js.map +1 -0
- package/dist/esm/components-page/sign-out.js +23 -0
- package/dist/esm/components-page/sign-out.js.map +1 -0
- package/dist/esm/components-page/sign-up.js +23 -0
- package/dist/esm/components-page/sign-up.js.map +1 -0
- package/dist/esm/components-page/stack-handler.js +223 -0
- package/dist/esm/components-page/stack-handler.js.map +1 -0
- package/dist/esm/components-page/team-creation.js +68 -0
- package/dist/esm/components-page/team-creation.js.map +1 -0
- package/dist/esm/components-page/team-invitation.js +110 -0
- package/dist/esm/components-page/team-invitation.js.map +1 -0
- package/dist/esm/generated/global-css.js +6 -0
- package/dist/esm/generated/global-css.js.map +1 -0
- package/dist/esm/generated/quetzal-translations.js +2397 -0
- package/dist/esm/generated/quetzal-translations.js.map +1 -0
- package/dist/esm/global.d.js +1 -0
- package/dist/esm/global.d.js.map +1 -0
- package/dist/esm/index.js +46 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/auth.js +98 -0
- package/dist/esm/lib/auth.js.map +1 -0
- package/dist/esm/lib/cookie.js +244 -0
- package/dist/esm/lib/cookie.js.map +1 -0
- package/dist/esm/lib/hooks.js +30 -0
- package/dist/esm/lib/hooks.js.map +1 -0
- package/dist/esm/lib/stack-app.js +2398 -0
- package/dist/esm/lib/stack-app.js.map +1 -0
- package/dist/esm/lib/translations.js +23 -0
- package/dist/esm/lib/translations.js.map +1 -0
- package/dist/esm/providers/stack-provider-client.js +29 -0
- package/dist/esm/providers/stack-provider-client.js.map +1 -0
- package/dist/esm/providers/stack-provider.js +25 -0
- package/dist/esm/providers/stack-provider.js.map +1 -0
- package/dist/esm/providers/theme-provider.js +71 -0
- package/dist/esm/providers/theme-provider.js.map +1 -0
- package/dist/esm/providers/translation-provider-client.js +18 -0
- package/dist/esm/providers/translation-provider-client.js.map +1 -0
- package/dist/esm/providers/translation-provider.js +18 -0
- package/dist/esm/providers/translation-provider.js.map +1 -0
- package/dist/esm/utils/browser-script.js +112 -0
- package/dist/esm/utils/browser-script.js.map +1 -0
- package/dist/esm/utils/constants.js +66 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/url.js +30 -0
- package/dist/esm/utils/url.js.map +1 -0
- package/dist/generated/global-css.d.mts +3 -0
- package/dist/generated/global-css.d.ts +3 -0
- package/dist/generated/global-css.js +31 -0
- package/dist/generated/global-css.js.map +1 -0
- package/dist/generated/quetzal-translations.d.mts +4 -0
- package/dist/generated/quetzal-translations.d.ts +4 -0
- package/dist/generated/quetzal-translations.js +2423 -0
- package/dist/generated/quetzal-translations.js.map +1 -0
- package/dist/global.d.d.mts +2 -0
- package/dist/global.d.d.ts +2 -0
- package/dist/global.d.js +2 -0
- package/dist/global.d.js.map +1 -0
- package/dist/index.d.mts +41 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +103 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.mts +33 -0
- package/dist/lib/auth.d.ts +33 -0
- package/dist/lib/auth.js +125 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/cookie.d.mts +33 -0
- package/dist/lib/cookie.d.ts +33 -0
- package/dist/lib/cookie.js +291 -0
- package/dist/lib/cookie.js.map +1 -0
- package/dist/lib/hooks.d.mts +41 -0
- package/dist/lib/hooks.d.ts +41 -0
- package/dist/lib/hooks.js +56 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/stack-app.d.mts +775 -0
- package/dist/lib/stack-app.d.ts +775 -0
- package/dist/lib/stack-app.js +2438 -0
- package/dist/lib/stack-app.js.map +1 -0
- package/dist/lib/translations.d.mts +5 -0
- package/dist/lib/translations.d.ts +5 -0
- package/dist/lib/translations.js +58 -0
- package/dist/lib/translations.js.map +1 -0
- package/dist/providers/stack-provider-client.d.mts +27 -0
- package/dist/providers/stack-provider-client.d.ts +27 -0
- package/dist/providers/stack-provider-client.js +65 -0
- package/dist/providers/stack-provider-client.js.map +1 -0
- package/dist/providers/stack-provider.d.mts +30 -0
- package/dist/providers/stack-provider.d.ts +30 -0
- package/dist/providers/stack-provider.js +46 -0
- package/dist/providers/stack-provider.js.map +1 -0
- package/dist/providers/theme-provider.d.mts +40 -0
- package/dist/providers/theme-provider.d.ts +40 -0
- package/dist/providers/theme-provider.js +105 -0
- package/dist/providers/theme-provider.js.map +1 -0
- package/dist/providers/translation-provider-client.d.mts +14 -0
- package/dist/providers/translation-provider-client.d.ts +14 -0
- package/dist/providers/translation-provider-client.js +43 -0
- package/dist/providers/translation-provider-client.js.map +1 -0
- package/dist/providers/translation-provider.d.mts +10 -0
- package/dist/providers/translation-provider.d.ts +10 -0
- package/dist/providers/translation-provider.js +43 -0
- package/dist/providers/translation-provider.js.map +1 -0
- package/dist/utils/browser-script.d.mts +7 -0
- package/dist/utils/browser-script.d.ts +7 -0
- package/dist/utils/browser-script.js +137 -0
- package/dist/utils/browser-script.js.map +1 -0
- package/dist/utils/constants.d.mts +79 -0
- package/dist/utils/constants.d.ts +79 -0
- package/dist/utils/constants.js +99 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/url.d.mts +4 -0
- package/dist/utils/url.d.ts +4 -0
- package/dist/utils/url.js +56 -0
- package/dist/utils/url.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components-page/password-reset.tsx"],"sourcesContent":["'use client';\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { KnownErrors } from \"@stackframe/stack-shared\";\nimport { getPasswordError } from \"@stackframe/stack-shared/dist/helpers/password\";\nimport { passwordSchema, yupObject, yupString } from \"@stackframe/stack-shared/dist/schema-fields\";\nimport { cacheFunction } from \"@stackframe/stack-shared/dist/utils/caches\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { Button, Label, PasswordInput, Typography, cn } from \"@stackframe/stack-ui\";\nimport React, { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { StackClientApp, useStackApp } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport default function PasswordResetForm(props: {\n code: string,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n\n const schema = yupObject({\n password: passwordSchema.defined(t(\"Please enter your password\")).nonEmpty(t(\"Please enter your password\")).test({\n name: 'is-valid-password',\n test: (value, ctx) => {\n const error = getPasswordError(value);\n if (error) {\n return ctx.createError({ message: error.message });\n } else {\n return true;\n }\n }\n }),\n passwordRepeat: yupString().nullable().oneOf([yup.ref('password'), null], t(\"Passwords do not match\")).defined().nonEmpty(t(\"Please repeat your password\"))\n });\n\n const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const stackApp = useStackApp();\n const [finished, setFinished] = useState(false);\n const [resetError, setResetError] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { password } = data;\n const result = await stackApp.resetPassword({ password, code: props.code });\n if (result.status === 'error') {\n setResetError(true);\n return;\n }\n\n setFinished(true);\n } finally {\n setLoading(false);\n }\n };\n\n if (finished) {\n return <PredefinedMessageCard type='passwordReset' fullPage={!!props.fullPage} />;\n }\n\n if (resetError) {\n return (\n <MessageCard title={t(\"Failed to reset password\")} fullPage={!!props.fullPage}>\n {t(\"Failed to reset password. Please request a new password reset link\")}\n </MessageCard>\n );\n }\n\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className={cn(\n \"flex flex-col items-stretch max-w-[380px] flex-basis-[380px]\",\n props.fullPage ? \"p-4\" : \"p-0\"\n )}>\n <div className=\"text-center mb-6\">\n <Typography type='h2'>{t(\"Reset Your Password\")}</Typography>\n </div>\n\n <form\n className=\"flex flex-col items-stretch\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"password\" className=\"mb-1\">{t(\"New Password\")}</Label>\n <PasswordInput\n id=\"password\"\n autoComplete=\"new-password\"\n {...register('password')}\n onChange={() => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.password?.message?.toString()} />\n\n <Label htmlFor=\"repeat-password\" className=\"mt-4 mb-1\">{t(\"Repeat New Password\")}</Label>\n <PasswordInput\n id=\"repeat-password\"\n autoComplete=\"new-password\"\n {...register('passwordRepeat')}\n onChange={() => {\n clearErrors('password');\n clearErrors('passwordRepeat');\n }}\n />\n <FormWarningText text={errors.passwordRepeat?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n {t(\"Reset Password\")}\n </Button>\n </form>\n </div>\n </MaybeFullPage>\n );\n}\n\n\nconst cachedVerifyPasswordResetCode = cacheFunction(async (stackApp: StackClientApp<true>, code: string) => {\n return await stackApp.verifyPasswordResetCode(code);\n});\n\nexport function PasswordReset({\n searchParams,\n fullPage = false,\n}: {\n searchParams: Record<string, string>,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const stackApp = useStackApp();\n\n const invalidJsx = (\n <MessageCard title={t(\"Invalid Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"Please double check if you have the correct password reset link.\")}</Typography>\n </MessageCard>\n );\n\n const expiredJsx = (\n <MessageCard title={t(\"Expired Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"Your password reset link has expired. Please request a new password reset link from the login page.\")}</Typography>\n </MessageCard>\n );\n\n const usedJsx = (\n <MessageCard title={t(\"Used Password Reset Link\")} fullPage={fullPage}>\n <Typography>{t(\"This password reset link has already been used. If you need to reset your password again, please request a new password reset link from the login page.\")}</Typography>\n </MessageCard>\n );\n\n const code = searchParams.code;\n if (!code) {\n return invalidJsx;\n }\n\n const result = React.use(cachedVerifyPasswordResetCode(stackApp, code));\n\n if (result.status === 'error') {\n if (result.error instanceof KnownErrors.VerificationCodeNotFound) {\n return invalidJsx;\n } else if (result.error instanceof KnownErrors.VerificationCodeExpired) {\n return expiredJsx;\n } else if (result.error instanceof KnownErrors.VerificationCodeAlreadyUsed) {\n return usedJsx;\n } else {\n throw result.error;\n }\n }\n\n return <PasswordResetForm code={code} fullPage={fullPage} />;\n}\n"],"mappings":"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","names":["React"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
declare function SignIn(props: {
|
|
4
|
+
fullPage?: boolean;
|
|
5
|
+
automaticRedirect?: boolean;
|
|
6
|
+
extraInfo?: React.ReactNode;
|
|
7
|
+
firstTab?: 'magic-link' | 'password';
|
|
8
|
+
}): react_jsx_runtime.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { SignIn };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
declare function SignIn(props: {
|
|
4
|
+
fullPage?: boolean;
|
|
5
|
+
automaticRedirect?: boolean;
|
|
6
|
+
extraInfo?: React.ReactNode;
|
|
7
|
+
firstTab?: 'magic-link' | 'password';
|
|
8
|
+
}): react_jsx_runtime.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { SignIn };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/components-page/sign-in.tsx
|
|
21
|
+
var sign_in_exports = {};
|
|
22
|
+
__export(sign_in_exports, {
|
|
23
|
+
SignIn: () => SignIn
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(sign_in_exports);
|
|
26
|
+
var import_auth_page = require("./auth-page");
|
|
27
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
28
|
+
function SignIn(props) {
|
|
29
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
30
|
+
import_auth_page.AuthPage,
|
|
31
|
+
{
|
|
32
|
+
fullPage: !!props.fullPage,
|
|
33
|
+
type: "sign-in",
|
|
34
|
+
automaticRedirect: !!props.automaticRedirect,
|
|
35
|
+
extraInfo: props.extraInfo,
|
|
36
|
+
firstTab: props.firstTab
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
+
0 && (module.exports = {
|
|
42
|
+
SignIn
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=sign-in.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components-page/sign-in.tsx"],"sourcesContent":["//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport { AuthPage } from \"./auth-page\";\n\nexport function SignIn(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n}) {\n return (\n <AuthPage\n fullPage={!!props.fullPage}\n type=\"sign-in\"\n automaticRedirect={!!props.automaticRedirect}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,uBAAyB;AASrB;AAPG,SAAS,OAAO,OAKpB;AACD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,CAAC,CAAC,MAAM;AAAA,MAClB,MAAK;AAAA,MACL,mBAAmB,CAAC,CAAC,MAAM;AAAA,MAC3B,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA;AAAA,EAClB;AAEJ;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
"use client";
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all)
|
|
12
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from))
|
|
17
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
28
|
+
mod
|
|
29
|
+
));
|
|
30
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
31
|
+
|
|
32
|
+
// src/components-page/sign-out.tsx
|
|
33
|
+
var sign_out_exports = {};
|
|
34
|
+
__export(sign_out_exports, {
|
|
35
|
+
SignOut: () => SignOut
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(sign_out_exports);
|
|
38
|
+
var import_caches = require("@stackframe/stack-shared/dist/utils/caches");
|
|
39
|
+
var import_react = __toESM(require("react"));
|
|
40
|
+
var import__ = require("..");
|
|
41
|
+
var import_predefined_message_card = require("../components/message-cards/predefined-message-card");
|
|
42
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
43
|
+
var cacheSignOut = (0, import_caches.cacheFunction)(async (user) => {
|
|
44
|
+
return await user.signOut();
|
|
45
|
+
});
|
|
46
|
+
function SignOut(props) {
|
|
47
|
+
const user = (0, import__.useUser)();
|
|
48
|
+
if (user) {
|
|
49
|
+
import_react.default.use(cacheSignOut(user));
|
|
50
|
+
}
|
|
51
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_predefined_message_card.PredefinedMessageCard, { type: "signedOut", fullPage: props.fullPage });
|
|
52
|
+
}
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
SignOut
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=sign-out.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components-page/sign-out.tsx"],"sourcesContent":["'use client';\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\n\nimport { cacheFunction } from \"@stackframe/stack-shared/dist/utils/caches\";\nimport React from \"react\";\nimport { CurrentUser, useUser } from \"..\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\n\nconst cacheSignOut = cacheFunction(async (user: CurrentUser) => {\n return await user.signOut();\n});\n\nexport function SignOut(props: { fullPage?: boolean }) {\n const user = useUser();\n\n if (user) {\n React.use(cacheSignOut(user));\n }\n\n return <PredefinedMessageCard type='signedOut' fullPage={props.fullPage} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,oBAA8B;AAC9B,mBAAkB;AAClB,eAAqC;AACrC,qCAAsC;AAa7B;AAXT,IAAM,mBAAe,6BAAc,OAAO,SAAsB;AAC9D,SAAO,MAAM,KAAK,QAAQ;AAC5B,CAAC;AAEM,SAAS,QAAQ,OAA+B;AACrD,QAAM,WAAO,kBAAQ;AAErB,MAAI,MAAM;AACR,iBAAAA,QAAM,IAAI,aAAa,IAAI,CAAC;AAAA,EAC9B;AAEA,SAAO,4CAAC,wDAAsB,MAAK,aAAY,UAAU,MAAM,UAAU;AAC3E;","names":["React"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
declare function SignUp(props: {
|
|
4
|
+
fullPage?: boolean;
|
|
5
|
+
automaticRedirect?: boolean;
|
|
6
|
+
noPasswordRepeat?: boolean;
|
|
7
|
+
extraInfo?: React.ReactNode;
|
|
8
|
+
firstTab?: 'magic-link' | 'password';
|
|
9
|
+
}): react_jsx_runtime.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { SignUp };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
declare function SignUp(props: {
|
|
4
|
+
fullPage?: boolean;
|
|
5
|
+
automaticRedirect?: boolean;
|
|
6
|
+
noPasswordRepeat?: boolean;
|
|
7
|
+
extraInfo?: React.ReactNode;
|
|
8
|
+
firstTab?: 'magic-link' | 'password';
|
|
9
|
+
}): react_jsx_runtime.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { SignUp };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
"use client";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
|
|
22
|
+
// src/components-page/sign-up.tsx
|
|
23
|
+
var sign_up_exports = {};
|
|
24
|
+
__export(sign_up_exports, {
|
|
25
|
+
SignUp: () => SignUp
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(sign_up_exports);
|
|
28
|
+
var import_auth_page = require("./auth-page");
|
|
29
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
+
function SignUp(props) {
|
|
31
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
32
|
+
import_auth_page.AuthPage,
|
|
33
|
+
{
|
|
34
|
+
fullPage: !!props.fullPage,
|
|
35
|
+
type: "sign-up",
|
|
36
|
+
automaticRedirect: !!props.automaticRedirect,
|
|
37
|
+
noPasswordRepeat: props.noPasswordRepeat,
|
|
38
|
+
extraInfo: props.extraInfo,
|
|
39
|
+
firstTab: props.firstTab
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
SignUp
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=sign-up.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components-page/sign-up.tsx"],"sourcesContent":["'use client';\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport { AuthPage } from './auth-page';\n\nexport function SignUp(props: {\n fullPage?: boolean,\n automaticRedirect?: boolean,\n noPasswordRepeat?: boolean,\n extraInfo?: React.ReactNode,\n firstTab?: 'magic-link' | 'password',\n}) {\n return <AuthPage\n fullPage={!!props.fullPage}\n type='sign-up'\n automaticRedirect={!!props.automaticRedirect}\n noPasswordRepeat={props.noPasswordRepeat}\n extraInfo={props.extraInfo}\n firstTab={props.firstTab}\n />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,uBAAyB;AAShB;AAPF,SAAS,OAAO,OAMpB;AACD,SAAO;AAAA,IAAC;AAAA;AAAA,MACN,UAAU,CAAC,CAAC,MAAM;AAAA,MAClB,MAAK;AAAA,MACL,mBAAmB,CAAC,CAAC,MAAM;AAAA,MAC3B,kBAAkB,MAAM;AAAA,MACxB,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA;AAAA,EAClB;AACF;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { StackClientApp } from '../lib/stack-app.mjs';
|
|
3
|
+
import { AccountSettings } from './account-settings.mjs';
|
|
4
|
+
import { EmailVerification } from './email-verification.mjs';
|
|
5
|
+
import { ForgotPassword } from './forgot-password.mjs';
|
|
6
|
+
import { PasswordReset } from './password-reset.mjs';
|
|
7
|
+
import { SignIn } from './sign-in.mjs';
|
|
8
|
+
import { SignUp } from './sign-up.mjs';
|
|
9
|
+
import { ErrorPage } from './error-page.mjs';
|
|
10
|
+
import { MagicLinkCallback } from './magic-link-callback.mjs';
|
|
11
|
+
import { OAuthCallback } from './oauth-callback.mjs';
|
|
12
|
+
import { SignOut } from './sign-out.mjs';
|
|
13
|
+
import { TeamInvitation } from './team-invitation.mjs';
|
|
14
|
+
import '@stackframe/stack-shared';
|
|
15
|
+
import '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
16
|
+
import '@stackframe/stack-shared/dist/interface/crud/api-keys';
|
|
17
|
+
import '@stackframe/stack-shared/dist/interface/crud/current-user';
|
|
18
|
+
import '@stackframe/stack-shared/dist/interface/crud/email-templates';
|
|
19
|
+
import '@stackframe/stack-shared/dist/interface/crud/team-permissions';
|
|
20
|
+
import '@stackframe/stack-shared/dist/sessions';
|
|
21
|
+
import '@stackframe/stack-shared/dist/utils/json';
|
|
22
|
+
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
23
|
+
import '@stackframe/stack-shared/dist/utils/results';
|
|
24
|
+
import 'lucide-react';
|
|
25
|
+
import 'react';
|
|
26
|
+
|
|
27
|
+
type Components = {
|
|
28
|
+
SignIn: typeof SignIn;
|
|
29
|
+
SignUp: typeof SignUp;
|
|
30
|
+
EmailVerification: typeof EmailVerification;
|
|
31
|
+
PasswordReset: typeof PasswordReset;
|
|
32
|
+
ForgotPassword: typeof ForgotPassword;
|
|
33
|
+
SignOut: typeof SignOut;
|
|
34
|
+
OAuthCallback: typeof OAuthCallback;
|
|
35
|
+
MagicLinkCallback: typeof MagicLinkCallback;
|
|
36
|
+
TeamInvitation: typeof TeamInvitation;
|
|
37
|
+
ErrorPage: typeof ErrorPage;
|
|
38
|
+
AccountSettings: typeof AccountSettings;
|
|
39
|
+
};
|
|
40
|
+
type BaseHandlerProps = {
|
|
41
|
+
fullPage: boolean;
|
|
42
|
+
componentProps?: {
|
|
43
|
+
[K in keyof Components]?: Parameters<Components[K]>[0];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
declare function ReactStackHandler<HasTokenStore extends boolean>(props: BaseHandlerProps & {
|
|
47
|
+
app: StackClientApp<HasTokenStore>;
|
|
48
|
+
location: string;
|
|
49
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
50
|
+
|
|
51
|
+
export { ReactStackHandler as default };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { StackClientApp } from '../lib/stack-app.js';
|
|
3
|
+
import { AccountSettings } from './account-settings.js';
|
|
4
|
+
import { EmailVerification } from './email-verification.js';
|
|
5
|
+
import { ForgotPassword } from './forgot-password.js';
|
|
6
|
+
import { PasswordReset } from './password-reset.js';
|
|
7
|
+
import { SignIn } from './sign-in.js';
|
|
8
|
+
import { SignUp } from './sign-up.js';
|
|
9
|
+
import { ErrorPage } from './error-page.js';
|
|
10
|
+
import { MagicLinkCallback } from './magic-link-callback.js';
|
|
11
|
+
import { OAuthCallback } from './oauth-callback.js';
|
|
12
|
+
import { SignOut } from './sign-out.js';
|
|
13
|
+
import { TeamInvitation } from './team-invitation.js';
|
|
14
|
+
import '@stackframe/stack-shared';
|
|
15
|
+
import '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
16
|
+
import '@stackframe/stack-shared/dist/interface/crud/api-keys';
|
|
17
|
+
import '@stackframe/stack-shared/dist/interface/crud/current-user';
|
|
18
|
+
import '@stackframe/stack-shared/dist/interface/crud/email-templates';
|
|
19
|
+
import '@stackframe/stack-shared/dist/interface/crud/team-permissions';
|
|
20
|
+
import '@stackframe/stack-shared/dist/sessions';
|
|
21
|
+
import '@stackframe/stack-shared/dist/utils/json';
|
|
22
|
+
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
23
|
+
import '@stackframe/stack-shared/dist/utils/results';
|
|
24
|
+
import 'lucide-react';
|
|
25
|
+
import 'react';
|
|
26
|
+
|
|
27
|
+
type Components = {
|
|
28
|
+
SignIn: typeof SignIn;
|
|
29
|
+
SignUp: typeof SignUp;
|
|
30
|
+
EmailVerification: typeof EmailVerification;
|
|
31
|
+
PasswordReset: typeof PasswordReset;
|
|
32
|
+
ForgotPassword: typeof ForgotPassword;
|
|
33
|
+
SignOut: typeof SignOut;
|
|
34
|
+
OAuthCallback: typeof OAuthCallback;
|
|
35
|
+
MagicLinkCallback: typeof MagicLinkCallback;
|
|
36
|
+
TeamInvitation: typeof TeamInvitation;
|
|
37
|
+
ErrorPage: typeof ErrorPage;
|
|
38
|
+
AccountSettings: typeof AccountSettings;
|
|
39
|
+
};
|
|
40
|
+
type BaseHandlerProps = {
|
|
41
|
+
fullPage: boolean;
|
|
42
|
+
componentProps?: {
|
|
43
|
+
[K in keyof Components]?: Parameters<Components[K]>[0];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
declare function ReactStackHandler<HasTokenStore extends boolean>(props: BaseHandlerProps & {
|
|
47
|
+
app: StackClientApp<HasTokenStore>;
|
|
48
|
+
location: string;
|
|
49
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
50
|
+
|
|
51
|
+
export { ReactStackHandler as default };
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/components-page/stack-handler.tsx
|
|
21
|
+
var stack_handler_exports = {};
|
|
22
|
+
__export(stack_handler_exports, {
|
|
23
|
+
default: () => stack_handler_default
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(stack_handler_exports);
|
|
26
|
+
var import_errors = require("@stackframe/stack-shared/dist/utils/errors");
|
|
27
|
+
var import_objects = require("@stackframe/stack-shared/dist/utils/objects");
|
|
28
|
+
var import_urls = require("@stackframe/stack-shared/dist/utils/urls");
|
|
29
|
+
var import_react = require("react");
|
|
30
|
+
var import__ = require("..");
|
|
31
|
+
var import_iframe_preventer = require("../components/iframe-preventer");
|
|
32
|
+
var import_message_card = require("../components/message-cards/message-card");
|
|
33
|
+
var import_account_settings = require("./account-settings");
|
|
34
|
+
var import_email_verification = require("./email-verification");
|
|
35
|
+
var import_error_page = require("./error-page");
|
|
36
|
+
var import_forgot_password = require("./forgot-password");
|
|
37
|
+
var import_magic_link_callback = require("./magic-link-callback");
|
|
38
|
+
var import_oauth_callback = require("./oauth-callback");
|
|
39
|
+
var import_password_reset = require("./password-reset");
|
|
40
|
+
var import_sign_out = require("./sign-out");
|
|
41
|
+
var import_team_invitation = require("./team-invitation");
|
|
42
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
43
|
+
var availablePaths = {
|
|
44
|
+
signIn: "sign-in",
|
|
45
|
+
signUp: "sign-up",
|
|
46
|
+
emailVerification: "email-verification",
|
|
47
|
+
passwordReset: "password-reset",
|
|
48
|
+
forgotPassword: "forgot-password",
|
|
49
|
+
signOut: "sign-out",
|
|
50
|
+
oauthCallback: "oauth-callback",
|
|
51
|
+
magicLinkCallback: "magic-link-callback",
|
|
52
|
+
teamInvitation: "team-invitation",
|
|
53
|
+
accountSettings: "account-settings",
|
|
54
|
+
error: "error"
|
|
55
|
+
};
|
|
56
|
+
var pathAliases = {
|
|
57
|
+
// also includes the uppercase and non-dashed versions
|
|
58
|
+
...Object.fromEntries(Object.entries(availablePaths).map(([key, value]) => [value, value])),
|
|
59
|
+
"log-in": availablePaths.signIn,
|
|
60
|
+
"register": availablePaths.signUp
|
|
61
|
+
};
|
|
62
|
+
function renderComponent(props) {
|
|
63
|
+
const { path, searchParams, fullPage, componentProps, redirectIfNotHandler, onNotFound, app } = props;
|
|
64
|
+
switch (path) {
|
|
65
|
+
case availablePaths.signIn: {
|
|
66
|
+
redirectIfNotHandler?.("signIn");
|
|
67
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
68
|
+
import__.SignIn,
|
|
69
|
+
{
|
|
70
|
+
fullPage,
|
|
71
|
+
automaticRedirect: true,
|
|
72
|
+
...filterUndefinedINU(componentProps?.SignIn)
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
case availablePaths.signUp: {
|
|
77
|
+
redirectIfNotHandler?.("signUp");
|
|
78
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
79
|
+
import__.SignUp,
|
|
80
|
+
{
|
|
81
|
+
fullPage,
|
|
82
|
+
automaticRedirect: true,
|
|
83
|
+
...filterUndefinedINU(componentProps?.SignUp)
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
case availablePaths.emailVerification: {
|
|
88
|
+
redirectIfNotHandler?.("emailVerification");
|
|
89
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
90
|
+
import_email_verification.EmailVerification,
|
|
91
|
+
{
|
|
92
|
+
searchParams,
|
|
93
|
+
fullPage,
|
|
94
|
+
...filterUndefinedINU(componentProps?.EmailVerification)
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
case availablePaths.passwordReset: {
|
|
99
|
+
redirectIfNotHandler?.("passwordReset");
|
|
100
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
101
|
+
import_password_reset.PasswordReset,
|
|
102
|
+
{
|
|
103
|
+
searchParams,
|
|
104
|
+
fullPage,
|
|
105
|
+
...filterUndefinedINU(componentProps?.PasswordReset)
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
case availablePaths.forgotPassword: {
|
|
110
|
+
redirectIfNotHandler?.("forgotPassword");
|
|
111
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
112
|
+
import_forgot_password.ForgotPassword,
|
|
113
|
+
{
|
|
114
|
+
fullPage,
|
|
115
|
+
...filterUndefinedINU(componentProps?.ForgotPassword)
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
case availablePaths.signOut: {
|
|
120
|
+
redirectIfNotHandler?.("signOut");
|
|
121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
122
|
+
import_sign_out.SignOut,
|
|
123
|
+
{
|
|
124
|
+
fullPage,
|
|
125
|
+
...filterUndefinedINU(componentProps?.SignOut)
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
case availablePaths.oauthCallback: {
|
|
130
|
+
redirectIfNotHandler?.("oauthCallback");
|
|
131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
132
|
+
import_oauth_callback.OAuthCallback,
|
|
133
|
+
{
|
|
134
|
+
fullPage,
|
|
135
|
+
...filterUndefinedINU(componentProps?.OAuthCallback)
|
|
136
|
+
}
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
case availablePaths.magicLinkCallback: {
|
|
140
|
+
redirectIfNotHandler?.("magicLinkCallback");
|
|
141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
142
|
+
import_magic_link_callback.MagicLinkCallback,
|
|
143
|
+
{
|
|
144
|
+
searchParams,
|
|
145
|
+
fullPage,
|
|
146
|
+
...filterUndefinedINU(componentProps?.MagicLinkCallback)
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
case availablePaths.teamInvitation: {
|
|
151
|
+
redirectIfNotHandler?.("teamInvitation");
|
|
152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
153
|
+
import_team_invitation.TeamInvitation,
|
|
154
|
+
{
|
|
155
|
+
searchParams,
|
|
156
|
+
fullPage,
|
|
157
|
+
...filterUndefinedINU(componentProps?.TeamInvitation)
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
case availablePaths.accountSettings: {
|
|
162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
163
|
+
import_account_settings.AccountSettings,
|
|
164
|
+
{
|
|
165
|
+
fullPage,
|
|
166
|
+
...filterUndefinedINU(componentProps?.AccountSettings)
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
case availablePaths.error: {
|
|
171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
172
|
+
import_error_page.ErrorPage,
|
|
173
|
+
{
|
|
174
|
+
searchParams,
|
|
175
|
+
fullPage,
|
|
176
|
+
...filterUndefinedINU(componentProps?.ErrorPage)
|
|
177
|
+
}
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
default: {
|
|
181
|
+
if (Object.values(availablePaths).includes(path)) {
|
|
182
|
+
throw new import_errors.StackAssertionError(`Path alias ${path} not included in switch statement, but in availablePaths?`, { availablePaths });
|
|
183
|
+
}
|
|
184
|
+
for (const [key, value] of Object.entries(pathAliases)) {
|
|
185
|
+
if (path === key.toLowerCase().replaceAll("-", "")) {
|
|
186
|
+
const redirectUrl = `${app.urls.handler}/${value}?${new URLSearchParams(searchParams).toString()}`;
|
|
187
|
+
return { redirect: redirectUrl };
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return onNotFound();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function ReactStackHandler(props) {
|
|
195
|
+
const { path, searchParams } = (0, import_react.useMemo)(() => {
|
|
196
|
+
const search = window.location.search;
|
|
197
|
+
const handlerPath = new URL(props.app.urls.handler, window.location.origin).pathname;
|
|
198
|
+
const relativePath = props.location.startsWith(handlerPath) ? props.location.slice(handlerPath.length).replace(/^\/+/, "") : props.location.replace(/^\/+/, "");
|
|
199
|
+
return {
|
|
200
|
+
path: relativePath,
|
|
201
|
+
searchParams: Object.fromEntries(new URLSearchParams(search).entries())
|
|
202
|
+
};
|
|
203
|
+
}, [props.location, props.app.urls.handler]);
|
|
204
|
+
const redirectIfNotHandler = (name) => {
|
|
205
|
+
const url = props.app.urls[name];
|
|
206
|
+
const handlerUrl = props.app.urls.handler;
|
|
207
|
+
if (url !== handlerUrl && url.startsWith(handlerUrl + "/")) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const urlObj = new URL(url, window.location.origin);
|
|
211
|
+
for (const [key, value] of Object.entries(searchParams)) {
|
|
212
|
+
urlObj.searchParams.set(key, value);
|
|
213
|
+
}
|
|
214
|
+
window.location.href = (0, import_urls.getRelativePart)(urlObj);
|
|
215
|
+
};
|
|
216
|
+
const result = renderComponent({
|
|
217
|
+
path,
|
|
218
|
+
searchParams,
|
|
219
|
+
fullPage: props.fullPage,
|
|
220
|
+
componentProps: props.componentProps,
|
|
221
|
+
redirectIfNotHandler,
|
|
222
|
+
onNotFound: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
223
|
+
import_message_card.MessageCard,
|
|
224
|
+
{
|
|
225
|
+
title: "Page does not exist",
|
|
226
|
+
fullPage: props.fullPage,
|
|
227
|
+
primaryButtonText: "Go to Home",
|
|
228
|
+
primaryAction: () => props.app.redirectToHome(),
|
|
229
|
+
children: "The page you are looking for could not be found. Please check the URL and try again."
|
|
230
|
+
}
|
|
231
|
+
),
|
|
232
|
+
app: props.app
|
|
233
|
+
});
|
|
234
|
+
if (result && "redirect" in result) {
|
|
235
|
+
window.location.href = result.redirect;
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iframe_preventer.IframePreventer, { children: result });
|
|
239
|
+
}
|
|
240
|
+
var stack_handler_default = ReactStackHandler;
|
|
241
|
+
function filterUndefinedINU(value) {
|
|
242
|
+
return value === void 0 ? value : (0, import_objects.filterUndefined)(value);
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=stack-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components-page/stack-handler.tsx"],"sourcesContent":["//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport { StackAssertionError } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { FilterUndefined, filterUndefined, pick } from \"@stackframe/stack-shared/dist/utils/objects\";\nimport { getRelativePart } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { useMemo } from 'react';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { IframePreventer } from \"../components/iframe-preventer\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { HandlerUrls, StackClientApp } from \"../lib/stack-app\";\nimport { AccountSettings } from \"./account-settings\";\nimport { EmailVerification } from \"./email-verification\";\nimport { ErrorPage } from \"./error-page\";\nimport { ForgotPassword } from \"./forgot-password\";\nimport { MagicLinkCallback } from \"./magic-link-callback\";\nimport { OAuthCallback } from \"./oauth-callback\";\nimport { PasswordReset } from \"./password-reset\";\nimport { SignOut } from \"./sign-out\";\nimport { TeamInvitation } from \"./team-invitation\";\n\ntype Components = {\n SignIn: typeof SignIn,\n SignUp: typeof SignUp,\n EmailVerification: typeof EmailVerification,\n PasswordReset: typeof PasswordReset,\n ForgotPassword: typeof ForgotPassword,\n SignOut: typeof SignOut,\n OAuthCallback: typeof OAuthCallback,\n MagicLinkCallback: typeof MagicLinkCallback,\n TeamInvitation: typeof TeamInvitation,\n ErrorPage: typeof ErrorPage,\n AccountSettings: typeof AccountSettings,\n};\n\ntype RouteProps = {\n params: Promise<{ stack?: string[] }> | { stack?: string[] },\n searchParams: Promise<Record<string, string>> | Record<string, string>,\n};\n\nconst next15DeprecationWarning = \"DEPRECATION WARNING: Next.js 15 disallows spreading the props argument of <StackHandler /> like `{...props}`, so you must now explicitly pass them in the `routeProps` argument: `routeProps={props}`. You can fix this by updating the code in the file `app/handler/[...stack]/route.tsx`.\";\n\nconst availablePaths = {\n signIn: 'sign-in',\n signUp: 'sign-up',\n emailVerification: 'email-verification',\n passwordReset: 'password-reset',\n forgotPassword: 'forgot-password',\n signOut: 'sign-out',\n oauthCallback: 'oauth-callback',\n magicLinkCallback: 'magic-link-callback',\n teamInvitation: 'team-invitation',\n accountSettings: 'account-settings',\n error: 'error',\n} as const;\n\nconst pathAliases = {\n // also includes the uppercase and non-dashed versions\n ...Object.fromEntries(Object.entries(availablePaths).map(([key, value]) => [value, value])),\n \"log-in\": availablePaths.signIn,\n \"register\": availablePaths.signUp,\n} as const;\n\ntype BaseHandlerProps = {\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>[0];\n },\n};\n\nfunction renderComponent(props: {\n path: string,\n searchParams: Record<string, string>,\n fullPage: boolean,\n componentProps?: BaseHandlerProps['componentProps'],\n redirectIfNotHandler?: (name: keyof HandlerUrls) => void,\n onNotFound: () => any,\n app: StackClientApp<any> | StackServerApp<any>,\n}) {\n const { path, searchParams, fullPage, componentProps, redirectIfNotHandler, onNotFound, app } = props;\n\n switch (path) {\n case availablePaths.signIn: {\n redirectIfNotHandler?.('signIn');\n return <SignIn\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n redirectIfNotHandler?.('signUp');\n return <SignUp\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n redirectIfNotHandler?.('emailVerification');\n return <EmailVerification\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n redirectIfNotHandler?.('passwordReset');\n return <PasswordReset\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n redirectIfNotHandler?.('forgotPassword');\n return <ForgotPassword\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ForgotPassword)}\n />;\n }\n case availablePaths.signOut: {\n redirectIfNotHandler?.('signOut');\n return <SignOut\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.SignOut)}\n />;\n }\n case availablePaths.oauthCallback: {\n redirectIfNotHandler?.('oauthCallback');\n return <OAuthCallback\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.OAuthCallback)}\n />;\n }\n case availablePaths.magicLinkCallback: {\n redirectIfNotHandler?.('magicLinkCallback');\n return <MagicLinkCallback\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MagicLinkCallback)}\n />;\n }\n case availablePaths.teamInvitation: {\n redirectIfNotHandler?.('teamInvitation');\n return <TeamInvitation\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.TeamInvitation)}\n />;\n }\n case availablePaths.accountSettings: {\n return <AccountSettings\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.AccountSettings)}\n />;\n }\n case availablePaths.error: {\n return <ErrorPage\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ErrorPage)}\n />;\n }\n default: {\n if (Object.values(availablePaths).includes(path as any)) {\n throw new StackAssertionError(`Path alias ${path} not included in switch statement, but in availablePaths?`, { availablePaths });\n }\n for (const [key, value] of Object.entries(pathAliases)) {\n if (path === key.toLowerCase().replaceAll('-', '')) {\n const redirectUrl = `${app.urls.handler}/${value}?${new URLSearchParams(searchParams).toString()}`;\n return { redirect: redirectUrl };\n }\n }\n return onNotFound();\n }\n }\n}\n\n\nfunction ReactStackHandler<HasTokenStore extends boolean>(props: BaseHandlerProps & {\n app: StackClientApp<HasTokenStore>,\n location: string, // Path like \"/abc/def\"\n}) {\n const { path, searchParams } = useMemo(() => {\n // Get search string from window.location since it's not included in currentLocation\n const search = window.location.search;\n const handlerPath = new URL(props.app.urls.handler, window.location.origin).pathname;\n\n // Remove the handler base path to get the relative path\n const relativePath = props.location.startsWith(handlerPath)\n ? props.location.slice(handlerPath.length).replace(/^\\/+/, '')\n : props.location.replace(/^\\/+/, '');\n\n return {\n path: relativePath,\n searchParams: Object.fromEntries(new URLSearchParams(search).entries())\n };\n }, [props.location, props.app.urls.handler]);\n\n const redirectIfNotHandler = (name: keyof HandlerUrls) => {\n const url = props.app.urls[name];\n const handlerUrl = props.app.urls.handler;\n\n if (url !== handlerUrl && url.startsWith(handlerUrl + \"/\")) {\n return;\n }\n\n const urlObj = new URL(url, window.location.origin);\n for (const [key, value] of Object.entries(searchParams)) {\n urlObj.searchParams.set(key, value);\n }\n\n window.location.href = getRelativePart(urlObj);\n };\n\n const result = renderComponent({\n path,\n searchParams,\n fullPage: props.fullPage,\n componentProps: props.componentProps,\n redirectIfNotHandler,\n onNotFound: () => (\n <MessageCard\n title=\"Page does not exist\"\n fullPage={props.fullPage}\n primaryButtonText=\"Go to Home\"\n primaryAction={() => props.app.redirectToHome()}\n >\n The page you are looking for could not be found. Please check the URL and try again.\n </MessageCard>\n ),\n app: props.app,\n });\n\n if (result && 'redirect' in result) {\n window.location.href = result.redirect;\n return null;\n }\n\n return (\n <IframePreventer>\n {result}\n </IframePreventer>\n );\n}\n\n\nexport default ReactStackHandler;\n\nfunction filterUndefinedINU<T extends {}>(value: T | undefined): FilterUndefined<T> | undefined {\n return value === undefined ? value : filterUndefined(value);\n}\n"],"mappings":"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","names":[]}
|