@stackframe/stack 2.6.19 → 2.6.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.
@@ -12,11 +12,22 @@ import { OAuthCallback } from "./oauth-callback";
12
12
  import { PasswordReset } from "./password-reset";
13
13
  import { SignOut } from "./sign-out";
14
14
  import { TeamInvitation } from "./team-invitation";
15
- import { filterUndefined } from "@stackframe/stack-shared/dist/utils/objects";
16
- import { jsx } from "react/jsx-runtime";
15
+ import { filterUndefined, pick } from "@stackframe/stack-shared/dist/utils/objects";
16
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
17
+ var 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}`";
17
18
  async function StackHandler(props) {
18
- if (!props.params?.stack) {
19
- return /* @__PURE__ */ jsx(MessageCard, { title: "Invalid Stack Handler Setup", fullPage: props.fullPage, children: /* @__PURE__ */ jsx("p", { children: "Can't use Stack handler at this location. Make sure that the file is in a folder called [...stack]." }) });
19
+ if (!("routeProps" in props)) {
20
+ console.warn(next15DeprecationWarning);
21
+ }
22
+ const routeProps = "routeProps" in props ? props.routeProps : pick(props, ["params", "searchParams"]);
23
+ const params = await routeProps.params;
24
+ const searchParams = await routeProps.searchParams;
25
+ if (!params?.stack) {
26
+ return /* @__PURE__ */ jsx(MessageCard, { title: "Invalid Stack Handler Setup", fullPage: props.fullPage, children: /* @__PURE__ */ jsxs("p", { children: [
27
+ "Can't use ",
28
+ "<StackHandler />",
29
+ " at this location. Make sure that the file is in a folder called [...stack]."
30
+ ] }) });
20
31
  }
21
32
  function redirectIfNotHandler(name) {
22
33
  const url = props.app.urls[name];
@@ -25,7 +36,7 @@ async function StackHandler(props) {
25
36
  return;
26
37
  }
27
38
  const urlObj = new URL(url, "http://example.com");
28
- for (const [key, value] of Object.entries(props.searchParams || {})) {
39
+ for (const [key, value] of Object.entries(routeProps.searchParams || {})) {
29
40
  urlObj.searchParams.set(key, value);
30
41
  }
31
42
  redirect(getRelativePart(urlObj), RedirectType.replace);
@@ -44,132 +55,141 @@ async function StackHandler(props) {
44
55
  accountSettings: "account-settings",
45
56
  error: "error"
46
57
  };
47
- const path = props.params.stack.join("/");
48
- switch (path) {
49
- case availablePaths.signIn: {
50
- redirectIfNotHandler("signIn");
51
- return /* @__PURE__ */ jsx(
52
- SignIn,
53
- {
54
- fullPage: props.fullPage,
55
- automaticRedirect: true,
56
- ...filterUndefinedINU(props.componentProps?.SignIn)
57
- }
58
- );
59
- }
60
- case availablePaths.signUp: {
61
- redirectIfNotHandler("signUp");
62
- return /* @__PURE__ */ jsx(
63
- SignUp,
64
- {
65
- fullPage: props.fullPage,
66
- automaticRedirect: true,
67
- ...filterUndefinedINU(props.componentProps?.SignUp)
68
- }
69
- );
70
- }
71
- case availablePaths.emailVerification: {
72
- redirectIfNotHandler("emailVerification");
73
- return /* @__PURE__ */ jsx(
74
- EmailVerification,
75
- {
76
- searchParams: props.searchParams,
77
- fullPage: props.fullPage,
78
- ...filterUndefinedINU(props.componentProps?.EmailVerification)
79
- }
80
- );
81
- }
82
- case availablePaths.passwordReset: {
83
- redirectIfNotHandler("passwordReset");
84
- return /* @__PURE__ */ jsx(
85
- PasswordReset,
86
- {
87
- searchParams: props.searchParams || {},
88
- fullPage: props.fullPage,
89
- ...filterUndefinedINU(props.componentProps?.PasswordReset)
90
- }
91
- );
92
- }
93
- case availablePaths.forgotPassword: {
94
- redirectIfNotHandler("forgotPassword");
95
- return /* @__PURE__ */ jsx(
96
- ForgotPassword,
97
- {
98
- fullPage: props.fullPage,
99
- ...filterUndefinedINU(props.componentProps?.ForgotPassword)
100
- }
101
- );
102
- }
103
- case availablePaths.signOut: {
104
- redirectIfNotHandler("signOut");
105
- return /* @__PURE__ */ jsx(
106
- SignOut,
107
- {
108
- fullPage: props.fullPage,
109
- ...filterUndefinedINU(props.componentProps?.SignOut)
110
- }
111
- );
112
- }
113
- case availablePaths.oauthCallback: {
114
- redirectIfNotHandler("oauthCallback");
115
- return /* @__PURE__ */ jsx(
116
- OAuthCallback,
117
- {
118
- fullPage: props.fullPage,
119
- ...filterUndefinedINU(props.componentProps?.OAuthCallback)
120
- }
121
- );
122
- }
123
- case availablePaths.magicLinkCallback: {
124
- redirectIfNotHandler("magicLinkCallback");
125
- return /* @__PURE__ */ jsx(
126
- MagicLinkCallback,
127
- {
128
- searchParams: props.searchParams || {},
129
- fullPage: props.fullPage,
130
- ...filterUndefinedINU(props.componentProps?.MagicLinkCallback)
131
- }
132
- );
133
- }
134
- case availablePaths.teamInvitation: {
135
- redirectIfNotHandler("teamInvitation");
136
- return /* @__PURE__ */ jsx(
137
- TeamInvitation,
138
- {
139
- searchParams: props.searchParams || {},
140
- fullPage: props.fullPage,
141
- ...filterUndefinedINU(props.componentProps?.TeamInvitation)
142
- }
143
- );
144
- }
145
- case availablePaths.accountSettings: {
146
- return /* @__PURE__ */ jsx(
147
- AccountSettings,
148
- {
149
- fullPage: props.fullPage,
150
- ...filterUndefinedINU(props.componentProps?.AccountSettings)
151
- }
152
- );
153
- }
154
- case availablePaths.error: {
155
- return /* @__PURE__ */ jsx(
156
- ErrorPage,
157
- {
158
- searchParams: props.searchParams || {},
159
- fullPage: props.fullPage,
160
- ...filterUndefinedINU(props.componentProps?.ErrorPage)
161
- }
162
- );
163
- }
164
- default: {
165
- for (const [key, value] of Object.entries(availablePaths)) {
166
- if (path === value.replaceAll("-", "")) {
167
- redirect(`${props.app.urls.handler}/${value}`, RedirectType.replace);
58
+ const path = params.stack.join("/");
59
+ const render = () => {
60
+ switch (path) {
61
+ case availablePaths.signIn: {
62
+ redirectIfNotHandler("signIn");
63
+ return /* @__PURE__ */ jsx(
64
+ SignIn,
65
+ {
66
+ fullPage: props.fullPage,
67
+ automaticRedirect: true,
68
+ ...filterUndefinedINU(props.componentProps?.SignIn)
69
+ }
70
+ );
71
+ }
72
+ case availablePaths.signUp: {
73
+ redirectIfNotHandler("signUp");
74
+ return /* @__PURE__ */ jsx(
75
+ SignUp,
76
+ {
77
+ fullPage: props.fullPage,
78
+ automaticRedirect: true,
79
+ ...filterUndefinedINU(props.componentProps?.SignUp)
80
+ }
81
+ );
82
+ }
83
+ case availablePaths.emailVerification: {
84
+ redirectIfNotHandler("emailVerification");
85
+ return /* @__PURE__ */ jsx(
86
+ EmailVerification,
87
+ {
88
+ searchParams,
89
+ fullPage: props.fullPage,
90
+ ...filterUndefinedINU(props.componentProps?.EmailVerification)
91
+ }
92
+ );
93
+ }
94
+ case availablePaths.passwordReset: {
95
+ redirectIfNotHandler("passwordReset");
96
+ return /* @__PURE__ */ jsx(
97
+ PasswordReset,
98
+ {
99
+ searchParams: searchParams || {},
100
+ fullPage: props.fullPage,
101
+ ...filterUndefinedINU(props.componentProps?.PasswordReset)
102
+ }
103
+ );
104
+ }
105
+ case availablePaths.forgotPassword: {
106
+ redirectIfNotHandler("forgotPassword");
107
+ return /* @__PURE__ */ jsx(
108
+ ForgotPassword,
109
+ {
110
+ fullPage: props.fullPage,
111
+ ...filterUndefinedINU(props.componentProps?.ForgotPassword)
112
+ }
113
+ );
114
+ }
115
+ case availablePaths.signOut: {
116
+ redirectIfNotHandler("signOut");
117
+ return /* @__PURE__ */ jsx(
118
+ SignOut,
119
+ {
120
+ fullPage: props.fullPage,
121
+ ...filterUndefinedINU(props.componentProps?.SignOut)
122
+ }
123
+ );
124
+ }
125
+ case availablePaths.oauthCallback: {
126
+ redirectIfNotHandler("oauthCallback");
127
+ return /* @__PURE__ */ jsx(
128
+ OAuthCallback,
129
+ {
130
+ fullPage: props.fullPage,
131
+ ...filterUndefinedINU(props.componentProps?.OAuthCallback)
132
+ }
133
+ );
134
+ }
135
+ case availablePaths.magicLinkCallback: {
136
+ redirectIfNotHandler("magicLinkCallback");
137
+ return /* @__PURE__ */ jsx(
138
+ MagicLinkCallback,
139
+ {
140
+ searchParams: searchParams || {},
141
+ fullPage: props.fullPage,
142
+ ...filterUndefinedINU(props.componentProps?.MagicLinkCallback)
143
+ }
144
+ );
145
+ }
146
+ case availablePaths.teamInvitation: {
147
+ redirectIfNotHandler("teamInvitation");
148
+ return /* @__PURE__ */ jsx(
149
+ TeamInvitation,
150
+ {
151
+ searchParams: searchParams || {},
152
+ fullPage: props.fullPage,
153
+ ...filterUndefinedINU(props.componentProps?.TeamInvitation)
154
+ }
155
+ );
156
+ }
157
+ case availablePaths.accountSettings: {
158
+ return /* @__PURE__ */ jsx(
159
+ AccountSettings,
160
+ {
161
+ fullPage: props.fullPage,
162
+ ...filterUndefinedINU(props.componentProps?.AccountSettings)
163
+ }
164
+ );
165
+ }
166
+ case availablePaths.error: {
167
+ return /* @__PURE__ */ jsx(
168
+ ErrorPage,
169
+ {
170
+ searchParams: searchParams || {},
171
+ fullPage: props.fullPage,
172
+ ...filterUndefinedINU(props.componentProps?.ErrorPage)
173
+ }
174
+ );
175
+ }
176
+ default: {
177
+ for (const [key, value] of Object.entries(availablePaths)) {
178
+ if (path === value.replaceAll("-", "")) {
179
+ redirect(`${props.app.urls.handler}/${value}`, RedirectType.replace);
180
+ }
168
181
  }
182
+ return notFound();
169
183
  }
170
- return notFound();
171
184
  }
172
- }
185
+ };
186
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
187
+ process.env.NODE_ENV === "development" && !("routeProps" in props) && /* @__PURE__ */ jsxs("span", { style: { color: "red" }, children: [
188
+ next15DeprecationWarning,
189
+ ". This warning will not be shown in production."
190
+ ] }),
191
+ render()
192
+ ] });
173
193
  }
174
194
  function filterUndefinedINU(value) {
175
195
  return value === void 0 ? value : filterUndefined(value);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components-page/stack-handler.tsx"],"sourcesContent":["import { getRelativePart } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { RedirectType, notFound, redirect } from 'next/navigation';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { HandlerUrls } 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\";\nimport { FilterUndefined, filterUndefined } from \"@stackframe/stack-shared/dist/utils/objects\";\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\n\nexport default async function StackHandler<HasTokenStore extends boolean>(props: {\n app: StackServerApp<HasTokenStore>,\n params?: { stack?: string[] },\n searchParams?: Record<string, string>,\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>;\n },\n}) {\n if (!props.params?.stack) {\n return (\n <MessageCard title=\"Invalid Stack Handler Setup\" fullPage={props.fullPage}>\n <p>Can't use Stack handler at this location. Make sure that the file is in a folder called [...stack].</p>\n </MessageCard>\n );\n }\n\n function 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 // don't redirect if the url is a handler url\n return;\n }\n\n const urlObj = new URL(url, \"http://example.com\");\n for (const [key, value] of Object.entries(props.searchParams || {})) {\n urlObj.searchParams.set(key, value);\n }\n\n redirect(getRelativePart(urlObj), RedirectType.replace);\n };\n\n const 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 };\n\n const path = props.params.stack.join('/');\n\n switch (path) {\n case availablePaths.signIn: {\n redirectIfNotHandler('signIn');\n return <SignIn\n fullPage={props.fullPage}\n automaticRedirect\n {...filterUndefinedINU(props.componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n redirectIfNotHandler('signUp');\n return <SignUp\n fullPage={props.fullPage}\n automaticRedirect\n {...filterUndefinedINU(props.componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n redirectIfNotHandler('emailVerification');\n return <EmailVerification\n searchParams={props.searchParams}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n redirectIfNotHandler('passwordReset');\n return <PasswordReset\n searchParams={props.searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n redirectIfNotHandler('forgotPassword');\n return <ForgotPassword\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.ForgotPassword)}\n />;\n }\n case availablePaths.signOut: {\n redirectIfNotHandler('signOut');\n return <SignOut\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.SignOut)}\n />;\n }\n case availablePaths.oauthCallback: {\n redirectIfNotHandler('oauthCallback');\n return <OAuthCallback\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.OAuthCallback)}\n />;\n }\n case availablePaths.magicLinkCallback: {\n redirectIfNotHandler('magicLinkCallback');\n return <MagicLinkCallback\n searchParams={props.searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.MagicLinkCallback)}\n />;\n }\n case availablePaths.teamInvitation: {\n redirectIfNotHandler('teamInvitation');\n return <TeamInvitation\n searchParams={props.searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.TeamInvitation)}\n />;\n }\n case availablePaths.accountSettings: {\n return <AccountSettings\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.AccountSettings)}\n />;\n }\n case availablePaths.error: {\n return <ErrorPage\n searchParams={props.searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.ErrorPage)}\n />;\n }\n default: {\n for (const [key, value] of Object.entries(availablePaths)) {\n if (path === value.replaceAll('-', '')) {\n redirect(`${props.app.urls.handler}/${value}`, RedirectType.replace);\n }\n }\n return notFound();\n }\n }\n}\n\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":[]}
1
+ {"version":3,"sources":["../../../src/components-page/stack-handler.tsx"],"sourcesContent":["import { getRelativePart } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { RedirectType, notFound, redirect } from 'next/navigation';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { HandlerUrls } 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\";\nimport { FilterUndefined, filterUndefined, pick } from \"@stackframe/stack-shared/dist/utils/objects\";\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}`\";\n\nexport default async function StackHandler<HasTokenStore extends boolean>(props: {\n app: StackServerApp<HasTokenStore>,\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>[0];\n },\n} & (\n | Partial<RouteProps>\n | {\n routeProps: RouteProps,\n }\n)): Promise<any> {\n if (!(\"routeProps\" in props)) {\n console.warn(next15DeprecationWarning);\n }\n\n const routeProps = \"routeProps\" in props ? props.routeProps : pick(props, [\"params\", \"searchParams\"] as any);\n const params = await routeProps.params;\n const searchParams = await routeProps.searchParams;\n if (!params?.stack) {\n return (\n <MessageCard title=\"Invalid Stack Handler Setup\" fullPage={props.fullPage}>\n <p>Can't use {\"<StackHandler />\"} at this location. Make sure that the file is in a folder called [...stack].</p>\n </MessageCard>\n );\n }\n\n function 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 // don't redirect if the url is a handler url\n return;\n }\n\n const urlObj = new URL(url, \"http://example.com\");\n for (const [key, value] of Object.entries(routeProps.searchParams || {})) {\n urlObj.searchParams.set(key, value);\n }\n\n redirect(getRelativePart(urlObj), RedirectType.replace);\n };\n\n const 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 };\n\n const path = params.stack.join('/');\n\n const render = () => {\n switch (path) {\n case availablePaths.signIn: {\n redirectIfNotHandler('signIn');\n return <SignIn\n fullPage={props.fullPage}\n automaticRedirect\n {...filterUndefinedINU(props.componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n redirectIfNotHandler('signUp');\n return <SignUp\n fullPage={props.fullPage}\n automaticRedirect\n {...filterUndefinedINU(props.componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n redirectIfNotHandler('emailVerification');\n return <EmailVerification\n searchParams={searchParams}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n redirectIfNotHandler('passwordReset');\n return <PasswordReset\n searchParams={searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n redirectIfNotHandler('forgotPassword');\n return <ForgotPassword\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.ForgotPassword)}\n />;\n }\n case availablePaths.signOut: {\n redirectIfNotHandler('signOut');\n return <SignOut\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.SignOut)}\n />;\n }\n case availablePaths.oauthCallback: {\n redirectIfNotHandler('oauthCallback');\n return <OAuthCallback\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.OAuthCallback)}\n />;\n }\n case availablePaths.magicLinkCallback: {\n redirectIfNotHandler('magicLinkCallback');\n return <MagicLinkCallback\n searchParams={searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.MagicLinkCallback)}\n />;\n }\n case availablePaths.teamInvitation: {\n redirectIfNotHandler('teamInvitation');\n return <TeamInvitation\n searchParams={searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.TeamInvitation)}\n />;\n }\n case availablePaths.accountSettings: {\n return <AccountSettings\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.AccountSettings)}\n />;\n }\n case availablePaths.error: {\n return <ErrorPage\n searchParams={searchParams || {}}\n fullPage={props.fullPage}\n {...filterUndefinedINU(props.componentProps?.ErrorPage)}\n />;\n }\n default: {\n for (const [key, value] of Object.entries(availablePaths)) {\n if (path === value.replaceAll('-', '')) {\n redirect(`${props.app.urls.handler}/${value}`, RedirectType.replace);\n }\n }\n return notFound();\n }\n }\n };\n\n return <>\n {process.env.NODE_ENV === \"development\" && !(\"routeProps\" in props) && (\n <span style={{ color: \"red\" }}>\n {next15DeprecationWarning}. This warning will not be shown in production.\n </span>\n )}\n {render()}\n </>;\n}\n\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":[]}
@@ -275,7 +275,7 @@ var quetzalLocales = new Map(typedEntries({
275
275
  "__stack-auto-translation-165": "Dieser Teameinladungslink wurde bereits verwendet.",
276
276
  "__stack-auto-translation-166": "Um die OTP-Anmeldung zu aktivieren, f\xFCgen Sie bitte eine verifizierte Anmelde-E-Mail hinzu.",
277
277
  "__stack-auto-translation-167": "Um die Passkey-Anmeldung zu aktivieren, f\xFCgen Sie bitte eine verifizierte Anmelde-E-Mail hinzu.",
278
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
278
+ "__stack-auto-translation-168": "Um ein Passwort festzulegen, f\xFCgen Sie bitte eine Anmelde-E-Mail hinzu.",
279
279
  "__stack-auto-translation-169": "Theme umschalten",
280
280
  "__stack-auto-translation-17": "Ein Team erstellen",
281
281
  "__stack-auto-translation-170": "TOTP-Mehrfaktor-Authentifizierungs-QR-Code",
@@ -667,7 +667,7 @@ var quetzalLocales = new Map(typedEntries({
667
667
  "__stack-auto-translation-165": "Este enlace de invitaci\xF3n al equipo ya ha sido utilizado.",
668
668
  "__stack-auto-translation-166": "Para activar el inicio de sesi\xF3n con OTP, agregue un correo electr\xF3nico de inicio de sesi\xF3n verificado.",
669
669
  "__stack-auto-translation-167": "Para activar el inicio de sesi\xF3n con clave de acceso, agregue un correo electr\xF3nico de inicio de sesi\xF3n verificado.",
670
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
670
+ "__stack-auto-translation-168": "Para establecer una contrase\xF1a, agregue un correo electr\xF3nico de inicio de sesi\xF3n.",
671
671
  "__stack-auto-translation-169": "Cambiar tema",
672
672
  "__stack-auto-translation-17": "Crear un equipo",
673
673
  "__stack-auto-translation-170": "C\xF3digo QR de autenticaci\xF3n multifactor TOTP",
@@ -863,7 +863,7 @@ var quetzalLocales = new Map(typedEntries({
863
863
  "__stack-auto-translation-165": "Este enlace de invitaci\xF3n al equipo ya ha sido utilizado.",
864
864
  "__stack-auto-translation-166": "Para habilitar el inicio de sesi\xF3n por OTP, a\xF1ada un correo electr\xF3nico de inicio de sesi\xF3n verificado.",
865
865
  "__stack-auto-translation-167": "Para habilitar el inicio de sesi\xF3n con clave de acceso, a\xF1ada un email de inicio de sesi\xF3n verificado.",
866
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
866
+ "__stack-auto-translation-168": "Para establecer una contrase\xF1a, a\xF1ade un email de inicio de sesi\xF3n.",
867
867
  "__stack-auto-translation-169": "Cambiar tema",
868
868
  "__stack-auto-translation-17": "Crear un equipo",
869
869
  "__stack-auto-translation-170": "C\xF3digo QR de autenticaci\xF3n multifactor TOTP",
@@ -1059,7 +1059,7 @@ var quetzalLocales = new Map(typedEntries({
1059
1059
  "__stack-auto-translation-165": "Ce lien d'invitation d'\xE9quipe a d\xE9j\xE0 \xE9t\xE9 utilis\xE9.",
1060
1060
  "__stack-auto-translation-166": "Pour activer la connexion par OTP, veuillez ajouter un courriel de connexion v\xE9rifi\xE9.",
1061
1061
  "__stack-auto-translation-167": "Pour activer la connexion par cl\xE9 d'acc\xE8s, veuillez ajouter un courriel de connexion v\xE9rifi\xE9.",
1062
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
1062
+ "__stack-auto-translation-168": "Pour d\xE9finir un mot de passe, veuillez ajouter un courriel de connexion.",
1063
1063
  "__stack-auto-translation-169": "Changer de th\xE8me",
1064
1064
  "__stack-auto-translation-17": "Cr\xE9er une \xE9quipe",
1065
1065
  "__stack-auto-translation-170": "Code QR d'authentification \xE0 plusieurs facteurs TOTP",
@@ -1255,7 +1255,7 @@ var quetzalLocales = new Map(typedEntries({
1255
1255
  "__stack-auto-translation-165": "Ce lien d'invitation d'\xE9quipe a d\xE9j\xE0 \xE9t\xE9 utilis\xE9.",
1256
1256
  "__stack-auto-translation-166": "Pour activer la connexion OTP, veuillez ajouter une adresse e-mail de connexion v\xE9rifi\xE9e.",
1257
1257
  "__stack-auto-translation-167": "Pour activer la connexion par cl\xE9 d'acc\xE8s, veuillez ajouter une adresse e-mail de connexion v\xE9rifi\xE9e.",
1258
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
1258
+ "__stack-auto-translation-168": "Pour d\xE9finir un mot de passe, veuillez ajouter une adresse e-mail de connexion.",
1259
1259
  "__stack-auto-translation-169": "Changer de th\xE8me",
1260
1260
  "__stack-auto-translation-17": "Cr\xE9er une \xE9quipe",
1261
1261
  "__stack-auto-translation-170": "TOTP Code QR d'authentification \xE0 plusieurs facteurs",
@@ -1451,7 +1451,7 @@ var quetzalLocales = new Map(typedEntries({
1451
1451
  "__stack-auto-translation-165": "Questo link di invito al team \xE8 gi\xE0 stato utilizzato.",
1452
1452
  "__stack-auto-translation-166": "Per abilitare l'accesso con OTP, aggiungi un'email di accesso verificata.",
1453
1453
  "__stack-auto-translation-167": "Per abilitare l'accesso con Passkey, aggiungi un'email di accesso verificata.",
1454
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
1454
+ "__stack-auto-translation-168": "Per impostare una password, aggiungi un'email di accesso.",
1455
1455
  "__stack-auto-translation-169": "Cambia tema",
1456
1456
  "__stack-auto-translation-17": "Crea un Team",
1457
1457
  "__stack-auto-translation-170": "Codice QR per l'autenticazione a pi\xF9 fattori TOTP",
@@ -1647,7 +1647,7 @@ var quetzalLocales = new Map(typedEntries({
1647
1647
  "__stack-auto-translation-165": "Este link de convite para a equipe j\xE1 foi utilizado.",
1648
1648
  "__stack-auto-translation-166": "Para habilitar a autentica\xE7\xE3o por OTP, adicione um email de login verificado.",
1649
1649
  "__stack-auto-translation-167": "Para habilitar o login por chave de acesso, adicione um email de login verificado.",
1650
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
1650
+ "__stack-auto-translation-168": "Para definir uma senha, adicione um email de login.",
1651
1651
  "__stack-auto-translation-169": "Alternar tema",
1652
1652
  "__stack-auto-translation-17": "Criar uma Equipe",
1653
1653
  "__stack-auto-translation-170": "C\xF3digo QR de autentica\xE7\xE3o de dois fatores TOTP",
@@ -1843,7 +1843,7 @@ var quetzalLocales = new Map(typedEntries({
1843
1843
  "__stack-auto-translation-165": "Este link de convite para a equipa j\xE1 foi utilizado.",
1844
1844
  "__stack-auto-translation-166": "Para ativar a autentica\xE7\xE3o OTP, adicione um email de acesso verificado.",
1845
1845
  "__stack-auto-translation-167": "Para ativar o in\xEDcio de sess\xE3o com chave de acesso, adicione um email de in\xEDcio de sess\xE3o verificado.",
1846
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
1846
+ "__stack-auto-translation-168": "Para definir uma palavra-passe, adicione um email de acesso.",
1847
1847
  "__stack-auto-translation-169": "Alternar tema",
1848
1848
  "__stack-auto-translation-17": "Criar uma Equipa",
1849
1849
  "__stack-auto-translation-170": "C\xF3digo QR de autentica\xE7\xE3o multifator TOTP",
@@ -2039,7 +2039,7 @@ var quetzalLocales = new Map(typedEntries({
2039
2039
  "__stack-auto-translation-165": "\u6B64\u56E2\u961F\u9080\u8BF7\u94FE\u63A5\u5DF2\u88AB\u4F7F\u7528\u3002",
2040
2040
  "__stack-auto-translation-166": "\u8981\u542F\u7528 OTP \u767B\u5F55\uFF0C\u8BF7\u6DFB\u52A0\u5DF2\u9A8C\u8BC1\u7684\u767B\u5F55\u90AE\u7BB1\u3002",
2041
2041
  "__stack-auto-translation-167": "\u8981\u542F\u7528\u901A\u884C\u5BC6\u94A5\u767B\u5F55\uFF0C\u8BF7\u6DFB\u52A0\u5DF2\u9A8C\u8BC1\u7684\u767B\u5F55\u90AE\u7BB1\u3002",
2042
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
2042
+ "__stack-auto-translation-168": "\u8981\u8BBE\u7F6E\u5BC6\u7801\uFF0C\u8BF7\u5148\u6DFB\u52A0\u767B\u5F55\u90AE\u7BB1\u3002",
2043
2043
  "__stack-auto-translation-169": "\u5207\u6362\u4E3B\u9898",
2044
2044
  "__stack-auto-translation-17": "\u521B\u5EFA\u56E2\u961F",
2045
2045
  "__stack-auto-translation-170": "TOTP \u591A\u56E0\u7D20\u8BA4\u8BC1\u4E8C\u7EF4\u7801",
@@ -2235,7 +2235,7 @@ var quetzalLocales = new Map(typedEntries({
2235
2235
  "__stack-auto-translation-165": "\u6B64\u5718\u968A\u9080\u8ACB\u9023\u7D50\u5DF2\u88AB\u4F7F\u7528\u3002",
2236
2236
  "__stack-auto-translation-166": "\u8ACB\u65B0\u589E\u5DF2\u9A57\u8B49\u7684\u767B\u5165\u96FB\u5B50\u90F5\u4EF6\u4EE5\u555F\u7528 OTP \u767B\u5165\u3002",
2237
2237
  "__stack-auto-translation-167": "\u82E5\u8981\u555F\u7528\u901A\u884C\u91D1\u9470\u767B\u5165\uFF0C\u8ACB\u65B0\u589E\u5DF2\u9A57\u8B49\u7684\u767B\u5165\u96FB\u5B50\u90F5\u4EF6\u3002",
2238
- "__stack-auto-translation-168": "To set a password, please add a sign-in email.",
2238
+ "__stack-auto-translation-168": "\u8ACB\u65B0\u589E\u767B\u5165\u96FB\u5B50\u90F5\u4EF6\u4EE5\u8A2D\u5B9A\u5BC6\u78BC\u3002",
2239
2239
  "__stack-auto-translation-169": "\u5207\u63DB\u4E3B\u984C",
2240
2240
  "__stack-auto-translation-17": "\u5EFA\u7ACB\u5718\u968A",
2241
2241
  "__stack-auto-translation-170": "TOTP \u591A\u56E0\u7D20\u9A57\u8B49 QR \u78BC",