@stackframe/stack 2.8.12 → 2.8.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/components/api-key-dialogs.js +5 -4
  3. package/dist/components/api-key-dialogs.js.map +1 -1
  4. package/dist/components/credential-sign-in.js +4 -4
  5. package/dist/components/credential-sign-up.js +3 -3
  6. package/dist/components/elements/maybe-full-page.js +1 -1
  7. package/dist/components/elements/sidebar-layout.js +1 -1
  8. package/dist/components/magic-link-sign-in.js +3 -3
  9. package/dist/components/message-cards/known-error-message-card.js +2 -2
  10. package/dist/components/message-cards/message-card.js +1 -1
  11. package/dist/components/message-cards/predefined-message-card.js +3 -3
  12. package/dist/components/oauth-button-group.js +2 -2
  13. package/dist/components/oauth-button.js +27 -16
  14. package/dist/components/oauth-button.js.map +1 -1
  15. package/dist/components/passkey-button.js +2 -2
  16. package/dist/components/profile-image-editor.js +87 -34
  17. package/dist/components/profile-image-editor.js.map +1 -1
  18. package/dist/components/selected-team-switcher.js +41 -9
  19. package/dist/components/selected-team-switcher.js.map +1 -1
  20. package/dist/components/{iframe-preventer.js → use-in-iframe.js} +9 -19
  21. package/dist/components/use-in-iframe.js.map +1 -0
  22. package/dist/components/user-button.js +41 -8
  23. package/dist/components/user-button.js.map +1 -1
  24. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +57 -12
  25. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  26. package/dist/components-page/account-settings/api-keys/api-keys-page.js +100 -12
  27. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  28. package/dist/components-page/account-settings/editable-text.js +1 -1
  29. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js +12 -12
  30. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  31. package/dist/components-page/account-settings/email-and-auth/emails-section.js +14 -5
  32. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  33. package/dist/components-page/account-settings/email-and-auth/mfa-section.js +18 -5
  34. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  35. package/dist/components-page/account-settings/email-and-auth/otp-section.js +18 -5
  36. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  37. package/dist/components-page/account-settings/email-and-auth/passkey-section.js +19 -6
  38. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  39. package/dist/components-page/account-settings/email-and-auth/password-section.js +20 -7
  40. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  41. package/dist/components-page/account-settings/profile-page/profile-page.js +18 -8
  42. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  43. package/dist/components-page/account-settings/settings/delete-account-section.js +19 -10
  44. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  45. package/dist/components-page/account-settings/settings/settings-page.js +6 -6
  46. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  47. package/dist/components-page/account-settings/settings/sign-out-section.js +15 -6
  48. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  49. package/dist/components-page/account-settings/teams/leave-team-section.js +3 -3
  50. package/dist/components-page/account-settings/teams/team-api-keys-section.js +5 -5
  51. package/dist/components-page/account-settings/teams/team-creation-page.js +19 -10
  52. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  53. package/dist/components-page/account-settings/teams/team-display-name-section.js +4 -4
  54. package/dist/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
  55. package/dist/components-page/account-settings/teams/team-member-list-section.js +3 -3
  56. package/dist/components-page/account-settings/teams/team-page.js +8 -8
  57. package/dist/components-page/account-settings/teams/team-profile-image-section.js +4 -4
  58. package/dist/components-page/account-settings/teams/team-profile-user-section.js +4 -4
  59. package/dist/components-page/account-settings.js +29 -21
  60. package/dist/components-page/account-settings.js.map +1 -1
  61. package/dist/components-page/auth-page.js +11 -12
  62. package/dist/components-page/auth-page.js.map +1 -1
  63. package/dist/components-page/cli-auth-confirm.js +3 -3
  64. package/dist/components-page/email-verification.js +3 -3
  65. package/dist/components-page/error-page.js +6 -6
  66. package/dist/components-page/error-page.js.map +1 -1
  67. package/dist/components-page/forgot-password.js +6 -6
  68. package/dist/components-page/magic-link-callback.js +4 -4
  69. package/dist/components-page/mfa.js +190 -0
  70. package/dist/components-page/mfa.js.map +1 -0
  71. package/dist/components-page/oauth-callback.js +4 -4
  72. package/dist/components-page/password-reset.js +6 -6
  73. package/dist/components-page/sign-in.js +3 -2
  74. package/dist/components-page/sign-in.js.map +1 -1
  75. package/dist/components-page/sign-out.js +2 -2
  76. package/dist/components-page/sign-up.js +1 -1
  77. package/dist/components-page/stack-handler.js +25 -14
  78. package/dist/components-page/stack-handler.js.map +1 -1
  79. package/dist/components-page/team-creation.js +4 -4
  80. package/dist/components-page/team-invitation.js +3 -3
  81. package/dist/esm/components/api-key-dialogs.js +5 -4
  82. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  83. package/dist/esm/components/credential-sign-in.js +4 -4
  84. package/dist/esm/components/credential-sign-up.js +3 -3
  85. package/dist/esm/components/elements/maybe-full-page.js +1 -1
  86. package/dist/esm/components/elements/sidebar-layout.js +1 -1
  87. package/dist/esm/components/magic-link-sign-in.js +3 -3
  88. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  89. package/dist/esm/components/message-cards/message-card.js +1 -1
  90. package/dist/esm/components/message-cards/predefined-message-card.js +3 -3
  91. package/dist/esm/components/oauth-button-group.js +2 -2
  92. package/dist/esm/components/oauth-button.js +28 -17
  93. package/dist/esm/components/oauth-button.js.map +1 -1
  94. package/dist/esm/components/passkey-button.js +2 -2
  95. package/dist/esm/components/profile-image-editor.js +86 -34
  96. package/dist/esm/components/profile-image-editor.js.map +1 -1
  97. package/dist/esm/components/selected-team-switcher.js +41 -9
  98. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  99. package/dist/esm/components/use-in-iframe.js +18 -0
  100. package/dist/esm/components/use-in-iframe.js.map +1 -0
  101. package/dist/esm/components/user-button.js +41 -8
  102. package/dist/esm/components/user-button.js.map +1 -1
  103. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +57 -12
  104. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  105. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js +100 -12
  106. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  107. package/dist/esm/components-page/account-settings/editable-text.js +1 -1
  108. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js +12 -12
  109. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  110. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +14 -5
  111. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  112. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +18 -5
  113. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  114. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js +18 -5
  115. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  116. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js +19 -6
  117. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  118. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +20 -7
  119. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  120. package/dist/esm/components-page/account-settings/profile-page/profile-page.js +18 -8
  121. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  122. package/dist/esm/components-page/account-settings/settings/delete-account-section.js +19 -10
  123. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  124. package/dist/esm/components-page/account-settings/settings/settings-page.js +6 -6
  125. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  126. package/dist/esm/components-page/account-settings/settings/sign-out-section.js +15 -6
  127. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  128. package/dist/esm/components-page/account-settings/teams/leave-team-section.js +3 -3
  129. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +5 -5
  130. package/dist/esm/components-page/account-settings/teams/team-creation-page.js +19 -10
  131. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  132. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js +4 -4
  133. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
  134. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js +3 -3
  135. package/dist/esm/components-page/account-settings/teams/team-page.js +8 -8
  136. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js +4 -4
  137. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js +4 -4
  138. package/dist/esm/components-page/account-settings.js +29 -21
  139. package/dist/esm/components-page/account-settings.js.map +1 -1
  140. package/dist/esm/components-page/auth-page.js +11 -12
  141. package/dist/esm/components-page/auth-page.js.map +1 -1
  142. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  143. package/dist/esm/components-page/email-verification.js +3 -3
  144. package/dist/esm/components-page/error-page.js +6 -6
  145. package/dist/esm/components-page/error-page.js.map +1 -1
  146. package/dist/esm/components-page/forgot-password.js +6 -6
  147. package/dist/esm/components-page/magic-link-callback.js +4 -4
  148. package/dist/esm/components-page/mfa.js +174 -0
  149. package/dist/esm/components-page/mfa.js.map +1 -0
  150. package/dist/esm/components-page/oauth-callback.js +4 -4
  151. package/dist/esm/components-page/password-reset.js +6 -6
  152. package/dist/esm/components-page/sign-in.js +3 -2
  153. package/dist/esm/components-page/sign-in.js.map +1 -1
  154. package/dist/esm/components-page/sign-out.js +2 -2
  155. package/dist/esm/components-page/sign-up.js +1 -1
  156. package/dist/esm/components-page/stack-handler.js +25 -14
  157. package/dist/esm/components-page/stack-handler.js.map +1 -1
  158. package/dist/esm/components-page/team-creation.js +4 -4
  159. package/dist/esm/components-page/team-invitation.js +3 -3
  160. package/dist/esm/generated/global-css.js +1 -1
  161. package/dist/esm/generated/global-css.js.map +1 -1
  162. package/dist/esm/generated/quetzal-translations.js +3574 -2364
  163. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  164. package/dist/esm/index.js +22 -22
  165. package/dist/esm/lib/auth.js +2 -2
  166. package/dist/esm/lib/cookie.js +1 -129
  167. package/dist/esm/lib/cookie.js.map +1 -1
  168. package/dist/esm/lib/hooks.js +1 -1
  169. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js +8 -8
  170. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
  171. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js +52 -21
  172. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
  173. package/dist/esm/lib/stack-app/apps/implementations/common.js +2 -1
  174. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +1 -1
  175. package/dist/esm/lib/stack-app/apps/implementations/index.js +3 -3
  176. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js +8 -8
  177. package/dist/esm/lib/stack-app/apps/index.js +3 -3
  178. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js +1 -1
  179. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js +1 -1
  180. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
  181. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js +1 -1
  182. package/dist/esm/lib/stack-app/common.js.map +1 -1
  183. package/dist/esm/lib/stack-app/index.js +2 -2
  184. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +1 -1
  185. package/dist/esm/lib/translations.js +1 -1
  186. package/dist/esm/providers/stack-provider-client.js +2 -2
  187. package/dist/esm/providers/stack-provider.js +3 -3
  188. package/dist/esm/providers/theme-provider.js +3 -3
  189. package/dist/esm/providers/translation-provider.js +2 -2
  190. package/dist/esm/utils/browser-script.js +1 -1
  191. package/dist/generated/global-css.js +1 -1
  192. package/dist/generated/global-css.js.map +1 -1
  193. package/dist/generated/quetzal-translations.js +3574 -2364
  194. package/dist/generated/quetzal-translations.js.map +1 -1
  195. package/dist/index.d.mts +71 -2
  196. package/dist/index.d.ts +71 -2
  197. package/dist/index.js +23 -23
  198. package/dist/index.js.map +1 -1
  199. package/dist/lib/auth.js +2 -2
  200. package/dist/lib/cookie.js +4 -132
  201. package/dist/lib/cookie.js.map +1 -1
  202. package/dist/lib/hooks.js +1 -1
  203. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js +8 -8
  204. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
  205. package/dist/lib/stack-app/apps/implementations/client-app-impl.js +52 -21
  206. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
  207. package/dist/lib/stack-app/apps/implementations/common.js +2 -1
  208. package/dist/lib/stack-app/apps/implementations/common.js.map +1 -1
  209. package/dist/lib/stack-app/apps/implementations/index.js +3 -3
  210. package/dist/lib/stack-app/apps/implementations/server-app-impl.js +8 -8
  211. package/dist/lib/stack-app/apps/index.js +3 -3
  212. package/dist/lib/stack-app/apps/interfaces/admin-app.js +1 -1
  213. package/dist/lib/stack-app/apps/interfaces/client-app.js +1 -1
  214. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
  215. package/dist/lib/stack-app/apps/interfaces/server-app.js +1 -1
  216. package/dist/lib/stack-app/common.js.map +1 -1
  217. package/dist/lib/stack-app/index.js +2 -2
  218. package/dist/lib/stack-app/internal-api-keys/index.js.map +1 -1
  219. package/dist/lib/translations.js +1 -1
  220. package/dist/providers/stack-provider-client.js +2 -2
  221. package/dist/providers/stack-provider.js +3 -3
  222. package/dist/providers/theme-provider.js +3 -3
  223. package/dist/providers/translation-provider.js +2 -2
  224. package/dist/utils/browser-script.js +1 -1
  225. package/package.json +5 -5
  226. package/dist/components/iframe-preventer.js.map +0 -1
  227. package/dist/esm/components/iframe-preventer.js +0 -28
  228. package/dist/esm/components/iframe-preventer.js.map +0 -1
@@ -52,7 +52,7 @@ var import_react = require("@stackframe/stack-shared/dist/utils/react");
52
52
  var import_results = require("@stackframe/stack-shared/dist/utils/results");
53
53
  var import_stores = require("@stackframe/stack-shared/dist/utils/stores");
54
54
  var import_react2 = __toESM(require("react"));
55
- var clientVersion = "js @stackframe/stack@2.8.12";
55
+ var clientVersion = "js @stackframe/stack@2.8.16";
56
56
  if (clientVersion.startsWith("STACK_COMPILE_TIME")) {
57
57
  throw new import_errors.StackAssertionError("Client version was not replaced. Something went wrong during build!");
58
58
  }
@@ -94,6 +94,7 @@ function getUrls(partial) {
94
94
  accountSettings: `${handler}/account-settings`,
95
95
  error: `${handler}/error`,
96
96
  teamInvitation: `${handler}/team-invitation`,
97
+ mfa: `${handler}/mfa`,
97
98
  ...(0, import_objects.filterUndefined)(partial)
98
99
  };
99
100
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/stack-app/apps/implementations/common.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { InternalSession } from \"@stackframe/stack-shared/dist/sessions\";\nimport { AsyncCache } from \"@stackframe/stack-shared/dist/utils/caches\";\nimport { isBrowserLike } from \"@stackframe/stack-shared/dist/utils/env\";\nimport { StackAssertionError, concatStacktraces, throwErr } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { filterUndefined } from \"@stackframe/stack-shared/dist/utils/objects\";\nimport { ReactPromise } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { suspendIfSsr } from \"@stackframe/stack-shared/dist/utils/react\";\nimport { Result } from \"@stackframe/stack-shared/dist/utils/results\";\nimport { Store } from \"@stackframe/stack-shared/dist/utils/stores\";\nimport React, { useCallback } from \"react\"; // THIS_LINE_PLATFORM react-like\nimport { HandlerUrls } from \"../../common\";\n\n// hack to make sure process is defined in non-node environments\n\nexport const clientVersion = \"js @stackframe/stack@2.8.12\";\nif (clientVersion.startsWith(\"STACK_COMPILE_TIME\")) {\n throw new StackAssertionError(\"Client version was not replaced. Something went wrong during build!\");\n}\n\n\nexport const createCache = <D extends any[], T>(fetcher: (dependencies: D) => Promise<T>) => {\n return new AsyncCache<D, Result<T>>(\n async (dependencies) => await Result.fromThrowingAsync(async () => await fetcher(dependencies)),\n {},\n );\n};\n\nexport const createCacheBySession = <D extends any[], T>(fetcher: (session: InternalSession, extraDependencies: D) => Promise<T> ) => {\n return new AsyncCache<[InternalSession, ...D], Result<T>>(\n async ([session, ...extraDependencies]) => await Result.fromThrowingAsync(async () => await fetcher(session, extraDependencies)),\n {\n onSubscribe: ([session], refresh) => {\n const handler = session.onInvalidate(() => refresh());\n return () => handler.unsubscribe();\n },\n },\n );\n};\n\nexport function getUrls(partial: Partial<HandlerUrls>): HandlerUrls {\n const handler = partial.handler ?? \"/handler\";\n const home = partial.home ?? \"/\";\n const afterSignIn = partial.afterSignIn ?? home;\n return {\n handler,\n signIn: `${handler}/sign-in`,\n afterSignIn: home,\n signUp: `${handler}/sign-up`,\n afterSignUp: afterSignIn,\n signOut: `${handler}/sign-out`,\n afterSignOut: home,\n emailVerification: `${handler}/email-verification`,\n passwordReset: `${handler}/password-reset`,\n forgotPassword: `${handler}/forgot-password`,\n oauthCallback: `${handler}/oauth-callback`,\n magicLinkCallback: `${handler}/magic-link-callback`,\n home: home,\n accountSettings: `${handler}/account-settings`,\n error: `${handler}/error`,\n teamInvitation: `${handler}/team-invitation`,\n ...filterUndefined(partial),\n };\n}\n\nexport function getDefaultProjectId() {\n return process.env.NEXT_PUBLIC_STACK_PROJECT_ID || throwErr(new Error(\"Welcome to Stack Auth! It seems that you haven't provided a project ID. Please create a project on the Stack dashboard at https://app.stack-auth.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable.\"));\n}\n\nexport function getDefaultPublishableClientKey() {\n return process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY || throwErr(new Error(\"Welcome to Stack Auth! It seems that you haven't provided a publishable client key. Please create an API key for your project on the Stack dashboard at https://app.stack-auth.com and copy your publishable client key into the NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY environment variable.\"));\n}\n\nexport function getDefaultSecretServerKey() {\n return process.env.STACK_SECRET_SERVER_KEY || throwErr(new Error(\"No secret server key provided. Please copy your key from the Stack dashboard and put it in the STACK_SECRET_SERVER_KEY environment variable.\"));\n}\n\nexport function getDefaultSuperSecretAdminKey() {\n return process.env.STACK_SUPER_SECRET_ADMIN_KEY || throwErr(new Error(\"No super secret admin key provided. Please copy your key from the Stack dashboard and put it in the STACK_SUPER_SECRET_ADMIN_KEY environment variable.\"));\n}\n\nexport function getDefaultExtraRequestHeaders() {\n return JSON.parse(process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS || '{}');\n}\n\n/**\n * Returns the base URL for the Stack API.\n *\n * The URL can be specified in several ways, in order of precedence:\n * 1. Directly through userSpecifiedBaseUrl parameter as string or browser/server object\n * 2. Through environment variables:\n * - Browser: NEXT_PUBLIC_BROWSER_STACK_API_URL\n * - Server: NEXT_PUBLIC_SERVER_STACK_API_URL\n * - Fallback: NEXT_PUBLIC_STACK_API_URL or NEXT_PUBLIC_STACK_URL\n * 3. Default base URL if none of the above are specified\n *\n * The function also ensures the URL doesn't end with a trailing slash\n * by removing it if present.\n *\n * @param userSpecifiedBaseUrl - Optional URL override as string or {browser, server} object\n * @returns The configured base URL without trailing slash\n\n */\nexport function getBaseUrl(userSpecifiedBaseUrl: string | { browser: string, server: string } | undefined) {\n let url;\n if (userSpecifiedBaseUrl) {\n if (typeof userSpecifiedBaseUrl === \"string\") {\n url = userSpecifiedBaseUrl;\n } else {\n if (isBrowserLike()) {\n url = userSpecifiedBaseUrl.browser;\n } else {\n url = userSpecifiedBaseUrl.server;\n }\n }\n } else {\n if (isBrowserLike()) {\n url = process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL;\n } else {\n url = process.env.NEXT_PUBLIC_SERVER_STACK_API_URL;\n }\n url = url || process.env.NEXT_PUBLIC_STACK_API_URL || process.env.NEXT_PUBLIC_STACK_URL || defaultBaseUrl;\n }\n\n return url.endsWith('/') ? url.slice(0, -1) : url;\n}\nconst defaultBaseUrl = \"https://api.stack-auth.com\";\n\nexport type TokenObject = {\n accessToken: string | null,\n refreshToken: string | null,\n};\n\nexport function createEmptyTokenStore() {\n return new Store<TokenObject>({\n refreshToken: null,\n accessToken: null,\n });\n}\n\n\nconst cachePromiseByHookId = new Map<string, ReactPromise<Result<unknown>>>();\nexport function useAsyncCache<D extends any[], T>(cache: AsyncCache<D, Result<T>>, dependencies: D, caller: string): T {\n // we explicitly don't want to run this hook in SSR\n suspendIfSsr(caller);\n\n const id = React.useId();\n\n const subscribe = useCallback((cb: () => void) => {\n const { unsubscribe } = cache.onStateChange(dependencies, () => {\n cachePromiseByHookId.delete(id);\n cb();\n });\n return unsubscribe;\n }, [cache, ...dependencies]);\n const getSnapshot = useCallback(() => {\n // React checks whether a promise passed to `use` is still the same as the previous one by comparing the reference.\n // If we didn't cache here, this wouldn't work because the promise would be recreated every time the value changes.\n if (!cachePromiseByHookId.has(id)) {\n cachePromiseByHookId.set(id, cache.getOrWait(dependencies, \"read-write\"));\n }\n return cachePromiseByHookId.get(id) as ReactPromise<Result<T>>;\n }, [cache, ...dependencies]);\n\n // note: we must use React.useSyncExternalStore instead of importing the function directly, as it will otherwise\n // throw an error on Next.js (\"can't import useSyncExternalStore from the server\")\n const promise = React.useSyncExternalStore(\n subscribe,\n getSnapshot,\n () => throwErr(new Error(\"getServerSnapshot should never be called in useAsyncCache because we restrict to CSR earlier\"))\n );\n\n const result = React.use(promise);\n if (result.status === \"error\") {\n const error = result.error;\n if (error instanceof Error && !(error as any).__stackHasConcatenatedStacktraces) {\n concatStacktraces(error, new Error());\n (error as any).__stackHasConcatenatedStacktraces = true;\n }\n throw error;\n }\n return result.data;\n}\n"],"mappings":"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","names":["import_react","React"]}
1
+ {"version":3,"sources":["../../../../../src/lib/stack-app/apps/implementations/common.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { InternalSession } from \"@stackframe/stack-shared/dist/sessions\";\nimport { AsyncCache } from \"@stackframe/stack-shared/dist/utils/caches\";\nimport { isBrowserLike } from \"@stackframe/stack-shared/dist/utils/env\";\nimport { StackAssertionError, concatStacktraces, throwErr } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { filterUndefined } from \"@stackframe/stack-shared/dist/utils/objects\";\nimport { ReactPromise } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { suspendIfSsr } from \"@stackframe/stack-shared/dist/utils/react\";\nimport { Result } from \"@stackframe/stack-shared/dist/utils/results\";\nimport { Store } from \"@stackframe/stack-shared/dist/utils/stores\";\nimport React, { useCallback } from \"react\"; // THIS_LINE_PLATFORM react-like\nimport { HandlerUrls } from \"../../common\";\n\n// hack to make sure process is defined in non-node environments\n\nexport const clientVersion = \"js @stackframe/stack@2.8.16\";\nif (clientVersion.startsWith(\"STACK_COMPILE_TIME\")) {\n throw new StackAssertionError(\"Client version was not replaced. Something went wrong during build!\");\n}\n\n\nexport const createCache = <D extends any[], T>(fetcher: (dependencies: D) => Promise<T>) => {\n return new AsyncCache<D, Result<T>>(\n async (dependencies) => await Result.fromThrowingAsync(async () => await fetcher(dependencies)),\n {},\n );\n};\n\nexport const createCacheBySession = <D extends any[], T>(fetcher: (session: InternalSession, extraDependencies: D) => Promise<T> ) => {\n return new AsyncCache<[InternalSession, ...D], Result<T>>(\n async ([session, ...extraDependencies]) => await Result.fromThrowingAsync(async () => await fetcher(session, extraDependencies)),\n {\n onSubscribe: ([session], refresh) => {\n const handler = session.onInvalidate(() => refresh());\n return () => handler.unsubscribe();\n },\n },\n );\n};\n\nexport function getUrls(partial: Partial<HandlerUrls>): HandlerUrls {\n const handler = partial.handler ?? \"/handler\";\n const home = partial.home ?? \"/\";\n const afterSignIn = partial.afterSignIn ?? home;\n return {\n handler,\n signIn: `${handler}/sign-in`,\n afterSignIn: home,\n signUp: `${handler}/sign-up`,\n afterSignUp: afterSignIn,\n signOut: `${handler}/sign-out`,\n afterSignOut: home,\n emailVerification: `${handler}/email-verification`,\n passwordReset: `${handler}/password-reset`,\n forgotPassword: `${handler}/forgot-password`,\n oauthCallback: `${handler}/oauth-callback`,\n magicLinkCallback: `${handler}/magic-link-callback`,\n home: home,\n accountSettings: `${handler}/account-settings`,\n error: `${handler}/error`,\n teamInvitation: `${handler}/team-invitation`,\n mfa: `${handler}/mfa`,\n ...filterUndefined(partial),\n };\n}\n\nexport function getDefaultProjectId() {\n return process.env.NEXT_PUBLIC_STACK_PROJECT_ID || throwErr(new Error(\"Welcome to Stack Auth! It seems that you haven't provided a project ID. Please create a project on the Stack dashboard at https://app.stack-auth.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable.\"));\n}\n\nexport function getDefaultPublishableClientKey() {\n return process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY || throwErr(new Error(\"Welcome to Stack Auth! It seems that you haven't provided a publishable client key. Please create an API key for your project on the Stack dashboard at https://app.stack-auth.com and copy your publishable client key into the NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY environment variable.\"));\n}\n\nexport function getDefaultSecretServerKey() {\n return process.env.STACK_SECRET_SERVER_KEY || throwErr(new Error(\"No secret server key provided. Please copy your key from the Stack dashboard and put it in the STACK_SECRET_SERVER_KEY environment variable.\"));\n}\n\nexport function getDefaultSuperSecretAdminKey() {\n return process.env.STACK_SUPER_SECRET_ADMIN_KEY || throwErr(new Error(\"No super secret admin key provided. Please copy your key from the Stack dashboard and put it in the STACK_SUPER_SECRET_ADMIN_KEY environment variable.\"));\n}\n\nexport function getDefaultExtraRequestHeaders() {\n return JSON.parse(process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS || '{}');\n}\n\n/**\n * Returns the base URL for the Stack API.\n *\n * The URL can be specified in several ways, in order of precedence:\n * 1. Directly through userSpecifiedBaseUrl parameter as string or browser/server object\n * 2. Through environment variables:\n * - Browser: NEXT_PUBLIC_BROWSER_STACK_API_URL\n * - Server: NEXT_PUBLIC_SERVER_STACK_API_URL\n * - Fallback: NEXT_PUBLIC_STACK_API_URL or NEXT_PUBLIC_STACK_URL\n * 3. Default base URL if none of the above are specified\n *\n * The function also ensures the URL doesn't end with a trailing slash\n * by removing it if present.\n *\n * @param userSpecifiedBaseUrl - Optional URL override as string or {browser, server} object\n * @returns The configured base URL without trailing slash\n\n */\nexport function getBaseUrl(userSpecifiedBaseUrl: string | { browser: string, server: string } | undefined) {\n let url;\n if (userSpecifiedBaseUrl) {\n if (typeof userSpecifiedBaseUrl === \"string\") {\n url = userSpecifiedBaseUrl;\n } else {\n if (isBrowserLike()) {\n url = userSpecifiedBaseUrl.browser;\n } else {\n url = userSpecifiedBaseUrl.server;\n }\n }\n } else {\n if (isBrowserLike()) {\n url = process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL;\n } else {\n url = process.env.NEXT_PUBLIC_SERVER_STACK_API_URL;\n }\n url = url || process.env.NEXT_PUBLIC_STACK_API_URL || process.env.NEXT_PUBLIC_STACK_URL || defaultBaseUrl;\n }\n\n return url.endsWith('/') ? url.slice(0, -1) : url;\n}\nconst defaultBaseUrl = \"https://api.stack-auth.com\";\n\nexport type TokenObject = {\n accessToken: string | null,\n refreshToken: string | null,\n};\n\nexport function createEmptyTokenStore() {\n return new Store<TokenObject>({\n refreshToken: null,\n accessToken: null,\n });\n}\n\n\nconst cachePromiseByHookId = new Map<string, ReactPromise<Result<unknown>>>();\nexport function useAsyncCache<D extends any[], T>(cache: AsyncCache<D, Result<T>>, dependencies: D, caller: string): T {\n // we explicitly don't want to run this hook in SSR\n suspendIfSsr(caller);\n\n const id = React.useId();\n\n const subscribe = useCallback((cb: () => void) => {\n const { unsubscribe } = cache.onStateChange(dependencies, () => {\n cachePromiseByHookId.delete(id);\n cb();\n });\n return unsubscribe;\n }, [cache, ...dependencies]);\n const getSnapshot = useCallback(() => {\n // React checks whether a promise passed to `use` is still the same as the previous one by comparing the reference.\n // If we didn't cache here, this wouldn't work because the promise would be recreated every time the value changes.\n if (!cachePromiseByHookId.has(id)) {\n cachePromiseByHookId.set(id, cache.getOrWait(dependencies, \"read-write\"));\n }\n return cachePromiseByHookId.get(id) as ReactPromise<Result<T>>;\n }, [cache, ...dependencies]);\n\n // note: we must use React.useSyncExternalStore instead of importing the function directly, as it will otherwise\n // throw an error on Next.js (\"can't import useSyncExternalStore from the server\")\n const promise = React.useSyncExternalStore(\n subscribe,\n getSnapshot,\n () => throwErr(new Error(\"getServerSnapshot should never be called in useAsyncCache because we restrict to CSR earlier\"))\n );\n\n const result = React.use(promise);\n if (result.status === \"error\") {\n const error = result.error;\n if (error instanceof Error && !(error as any).__stackHasConcatenatedStacktraces) {\n concatStacktraces(error, new Error());\n (error as any).__stackHasConcatenatedStacktraces = true;\n }\n throw error;\n }\n return result.data;\n}\n"],"mappings":"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","names":["import_react","React"]}
@@ -26,9 +26,9 @@ __export(implementations_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(implementations_exports);
28
28
  var import_compile_time = require("@stackframe/stack-shared/dist/utils/compile-time");
29
- var import_admin_app_impl = require("./admin-app-impl");
30
- var import_client_app_impl = require("./client-app-impl");
31
- var import_server_app_impl = require("./server-app-impl");
29
+ var import_admin_app_impl = require("./admin-app-impl.js");
30
+ var import_client_app_impl = require("./client-app-impl.js");
31
+ var import_server_app_impl = require("./server-app-impl.js");
32
32
  function complete() {
33
33
  import_client_app_impl._StackClientAppImplIncomplete.LazyStackAdminAppImpl.value = import_admin_app_impl._StackAdminAppImplIncomplete;
34
34
  return {
@@ -29,14 +29,14 @@ var import_promises = require("@stackframe/stack-shared/dist/utils/promises");
29
29
  var import_react = require("@stackframe/stack-shared/dist/utils/react");
30
30
  var import_results = require("@stackframe/stack-shared/dist/utils/results");
31
31
  var import_react2 = require("react");
32
- var import_url = require("../../../../utils/url");
33
- var import_api_keys = require("../../api-keys");
34
- var import_contact_channels = require("../../contact-channels");
35
- var import_teams = require("../../teams");
36
- var import_users = require("../../users");
37
- var import_client_app_impl = require("./client-app-impl");
38
- var import_common = require("./common");
39
- var import_common2 = require("./common");
32
+ var import_url = require("../../../../utils/url.js");
33
+ var import_api_keys = require("../../api-keys/index.js");
34
+ var import_contact_channels = require("../../contact-channels/index.js");
35
+ var import_teams = require("../../teams/index.js");
36
+ var import_users = require("../../users/index.js");
37
+ var import_client_app_impl = require("./client-app-impl.js");
38
+ var import_common = require("./common.js");
39
+ var import_common2 = require("./common.js");
40
40
  var _StackServerAppImplIncomplete = class extends import_client_app_impl._StackClientAppImplIncomplete {
41
41
  constructor(options) {
42
42
  super("interface" in options ? {
@@ -25,9 +25,9 @@ __export(apps_exports, {
25
25
  StackServerApp: () => import_server_app.StackServerApp
26
26
  });
27
27
  module.exports = __toCommonJS(apps_exports);
28
- var import_client_app = require("./interfaces/client-app");
29
- var import_server_app = require("./interfaces/server-app");
30
- var import_admin_app = require("./interfaces/admin-app");
28
+ var import_client_app = require("./interfaces/client-app.js");
29
+ var import_server_app = require("./interfaces/server-app.js");
30
+ var import_admin_app = require("./interfaces/admin-app.js");
31
31
  // Annotate the CommonJS export names for ESM import in node:
32
32
  0 && (module.exports = {
33
33
  StackAdminApp,
@@ -23,7 +23,7 @@ __export(admin_app_exports, {
23
23
  StackAdminApp: () => StackAdminApp
24
24
  });
25
25
  module.exports = __toCommonJS(admin_app_exports);
26
- var import_implementations = require("../implementations");
26
+ var import_implementations = require("../implementations/index.js");
27
27
  var StackAdminApp = import_implementations._StackAdminAppImpl;
28
28
  // Annotate the CommonJS export names for ESM import in node:
29
29
  0 && (module.exports = {
@@ -23,7 +23,7 @@ __export(client_app_exports, {
23
23
  StackClientApp: () => StackClientApp
24
24
  });
25
25
  module.exports = __toCommonJS(client_app_exports);
26
- var import_implementations = require("../implementations");
26
+ var import_implementations = require("../implementations/index.js");
27
27
  var StackClientApp = import_implementations._StackClientAppImpl;
28
28
  // Annotate the CommonJS export names for ESM import in node:
29
29
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/stack-app/apps/interfaces/client-app.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { KnownErrors } from \"@stackframe/stack-shared\";\nimport { CurrentUserCrud } from \"@stackframe/stack-shared/dist/interface/crud/current-user\";\nimport { Result } from \"@stackframe/stack-shared/dist/utils/results\";\nimport { AsyncStoreProperty, GetUserOptions, HandlerUrls, OAuthScopesOnSignIn, RedirectMethod, RedirectToOptions, TokenStoreInit, stackAppInternalsSymbol } from \"../../common\";\nimport { Project } from \"../../projects\";\nimport { ProjectCurrentUser } from \"../../users\";\nimport { _StackClientAppImpl } from \"../implementations\";\n\n\nexport type StackClientAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = {\n baseUrl?: string | { browser: string, server: string },\n extraRequestHeaders?: Record<string, string>,\n projectId?: ProjectId,\n publishableClientKey?: string,\n urls?: Partial<HandlerUrls>,\n oauthScopesOnSignIn?: Partial<OAuthScopesOnSignIn>,\n tokenStore: TokenStoreInit<HasTokenStore>,\n redirectMethod?: RedirectMethod,\n\n /**\n * By default, the Stack app will automatically prefetch some data from Stack's server when this app is first\n * constructed. This improves the performance of your app, but will create network requests that are unnecessary if\n * the app is never used or disposed of immediately. To disable this behavior, set this option to true.\n */\n noAutomaticPrefetch?: boolean,\n};\n\n\nexport type StackClientAppJson<HasTokenStore extends boolean, ProjectId extends string> = StackClientAppConstructorOptions<HasTokenStore, ProjectId> & {\n uniqueIdentifier: string,\n // note: if you add more fields here, make sure to ensure the checkString in the constructor has/doesn't have them\n};\n\nexport type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (\n & {\n readonly projectId: ProjectId,\n\n readonly urls: Readonly<HandlerUrls>,\n\n signInWithOAuth(provider: string): Promise<void>,\n signInWithCredential(options: { email: string, password: string, noRedirect?: boolean }): Promise<Result<undefined, KnownErrors[\"EmailPasswordMismatch\"] | KnownErrors[\"InvalidTotpCode\"]>>,\n signUpWithCredential(options: { email: string, password: string, noRedirect?: boolean, verificationCallbackUrl?: string }): Promise<Result<undefined, KnownErrors[\"UserWithEmailAlreadyExists\"] | KnownErrors[\"PasswordRequirementsNotMet\"]>>,\n signInWithPasskey(): Promise<Result<undefined, KnownErrors[\"PasskeyAuthenticationFailed\"]| KnownErrors[\"InvalidTotpCode\"] | KnownErrors[\"PasskeyWebAuthnError\"]>>,\n callOAuthCallback(): Promise<boolean>,\n promptCliLogin(options: { appUrl: string, expiresInMillis?: number }): Promise<Result<string, KnownErrors[\"CliAuthError\"] | KnownErrors[\"CliAuthExpiredError\"] | KnownErrors[\"CliAuthUsedError\"]>>,\n sendForgotPasswordEmail(email: string, options?: { callbackUrl?: string }): Promise<Result<undefined, KnownErrors[\"UserNotFound\"]>>,\n sendMagicLinkEmail(email: string, options?: { callbackUrl?: string }): Promise<Result<{ nonce: string }, KnownErrors[\"RedirectUrlNotWhitelisted\"]>>,\n resetPassword(options: { code: string, password: string }): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n verifyPasswordResetCode(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n verifyTeamInvitationCode(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n acceptTeamInvitation(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n getTeamInvitationDetails(code: string): Promise<Result<{ teamDisplayName: string }, KnownErrors[\"VerificationCodeError\"]>>,\n verifyEmail(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n signInWithMagicLink(code: string, options?: { noRedirect?: boolean }): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"] | KnownErrors[\"InvalidTotpCode\"]>>,\n\n redirectToOAuthCallback(): Promise<void>,\n\n useUser(options: GetUserOptions<HasTokenStore> & { or: 'redirect' }): ProjectCurrentUser<ProjectId>,\n useUser(options: GetUserOptions<HasTokenStore> & { or: 'throw' }): ProjectCurrentUser<ProjectId>,\n useUser(options: GetUserOptions<HasTokenStore> & { or: 'anonymous' }): ProjectCurrentUser<ProjectId>,\n useUser(options?: GetUserOptions<HasTokenStore>): ProjectCurrentUser<ProjectId> | null,\n\n getUser(options: GetUserOptions<HasTokenStore> & { or: 'redirect' }): Promise<ProjectCurrentUser<ProjectId>>,\n getUser(options: GetUserOptions<HasTokenStore> & { or: 'throw' }): Promise<ProjectCurrentUser<ProjectId>>,\n getUser(options: GetUserOptions<HasTokenStore> & { or: 'anonymous' }): Promise<ProjectCurrentUser<ProjectId>>,\n getUser(options?: GetUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>,\n\n useNavigate(): (to: string) => void, // THIS_LINE_PLATFORM react-like\n\n [stackAppInternalsSymbol]: {\n toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>,\n setCurrentUser(userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null>): void,\n },\n }\n & AsyncStoreProperty<\"project\", [], Project, false>\n & { [K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: (options?: RedirectToOptions) => Promise<void> }\n);\nexport type StackClientAppConstructor = {\n new <\n TokenStoreType extends string,\n HasTokenStore extends (TokenStoreType extends {} ? true : boolean),\n ProjectId extends string\n >(options: StackClientAppConstructorOptions<HasTokenStore, ProjectId>): StackClientApp<HasTokenStore, ProjectId>,\n new (options: StackClientAppConstructorOptions<boolean, string>): StackClientApp<boolean, string>,\n\n [stackAppInternalsSymbol]: {\n fromClientJson<HasTokenStore extends boolean, ProjectId extends string>(\n json: StackClientAppJson<HasTokenStore, ProjectId>\n ): StackClientApp<HasTokenStore, ProjectId>,\n },\n};\nexport const StackClientApp: StackClientAppConstructor = _StackClientAppImpl;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,6BAAoC;AAqF7B,IAAM,iBAA4C;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/lib/stack-app/apps/interfaces/client-app.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { KnownErrors } from \"@stackframe/stack-shared\";\nimport { CurrentUserCrud } from \"@stackframe/stack-shared/dist/interface/crud/current-user\";\nimport { Result } from \"@stackframe/stack-shared/dist/utils/results\";\nimport { AsyncStoreProperty, GetUserOptions, HandlerUrls, OAuthScopesOnSignIn, RedirectMethod, RedirectToOptions, TokenStoreInit, stackAppInternalsSymbol } from \"../../common\";\nimport { Project } from \"../../projects\";\nimport { ProjectCurrentUser } from \"../../users\";\nimport { _StackClientAppImpl } from \"../implementations\";\n\n\nexport type StackClientAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = {\n baseUrl?: string | { browser: string, server: string },\n extraRequestHeaders?: Record<string, string>,\n projectId?: ProjectId,\n publishableClientKey?: string,\n urls?: Partial<HandlerUrls>,\n oauthScopesOnSignIn?: Partial<OAuthScopesOnSignIn>,\n tokenStore: TokenStoreInit<HasTokenStore>,\n redirectMethod?: RedirectMethod,\n\n /**\n * By default, the Stack app will automatically prefetch some data from Stack's server when this app is first\n * constructed. This improves the performance of your app, but will create network requests that are unnecessary if\n * the app is never used or disposed of immediately. To disable this behavior, set this option to true.\n */\n noAutomaticPrefetch?: boolean,\n};\n\n\nexport type StackClientAppJson<HasTokenStore extends boolean, ProjectId extends string> = StackClientAppConstructorOptions<HasTokenStore, ProjectId> & {\n uniqueIdentifier: string,\n // note: if you add more fields here, make sure to ensure the checkString in the constructor has/doesn't have them\n};\n\nexport type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (\n & {\n readonly projectId: ProjectId,\n\n readonly urls: Readonly<HandlerUrls>,\n\n signInWithOAuth(provider: string): Promise<void>,\n signInWithCredential(options: { email: string, password: string, noRedirect?: boolean }): Promise<Result<undefined, KnownErrors[\"EmailPasswordMismatch\"] | KnownErrors[\"InvalidTotpCode\"]>>,\n signUpWithCredential(options: { email: string, password: string, noRedirect?: boolean, verificationCallbackUrl?: string }): Promise<Result<undefined, KnownErrors[\"UserWithEmailAlreadyExists\"] | KnownErrors[\"PasswordRequirementsNotMet\"]>>,\n signInWithPasskey(): Promise<Result<undefined, KnownErrors[\"PasskeyAuthenticationFailed\"]| KnownErrors[\"InvalidTotpCode\"] | KnownErrors[\"PasskeyWebAuthnError\"]>>,\n callOAuthCallback(): Promise<boolean>,\n promptCliLogin(options: { appUrl: string, expiresInMillis?: number }): Promise<Result<string, KnownErrors[\"CliAuthError\"] | KnownErrors[\"CliAuthExpiredError\"] | KnownErrors[\"CliAuthUsedError\"]>>,\n sendForgotPasswordEmail(email: string, options?: { callbackUrl?: string }): Promise<Result<undefined, KnownErrors[\"UserNotFound\"]>>,\n sendMagicLinkEmail(email: string, options?: { callbackUrl?: string }): Promise<Result<{ nonce: string }, KnownErrors[\"RedirectUrlNotWhitelisted\"]>>,\n resetPassword(options: { code: string, password: string }): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n verifyPasswordResetCode(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n verifyTeamInvitationCode(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n acceptTeamInvitation(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n getTeamInvitationDetails(code: string): Promise<Result<{ teamDisplayName: string }, KnownErrors[\"VerificationCodeError\"]>>,\n verifyEmail(code: string): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"]>>,\n signInWithMagicLink(code: string, options?: { noRedirect?: boolean }): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"] | KnownErrors[\"InvalidTotpCode\"]>>,\n signInWithMfa(otp: string, code: string, options?: { noRedirect?: boolean }): Promise<Result<undefined, KnownErrors[\"VerificationCodeError\"] | KnownErrors[\"InvalidTotpCode\"]>>,\n\n redirectToOAuthCallback(): Promise<void>,\n\n useUser(options: GetUserOptions<HasTokenStore> & { or: 'redirect' }): ProjectCurrentUser<ProjectId>,\n useUser(options: GetUserOptions<HasTokenStore> & { or: 'throw' }): ProjectCurrentUser<ProjectId>,\n useUser(options: GetUserOptions<HasTokenStore> & { or: 'anonymous' }): ProjectCurrentUser<ProjectId>,\n useUser(options?: GetUserOptions<HasTokenStore>): ProjectCurrentUser<ProjectId> | null,\n\n getUser(options: GetUserOptions<HasTokenStore> & { or: 'redirect' }): Promise<ProjectCurrentUser<ProjectId>>,\n getUser(options: GetUserOptions<HasTokenStore> & { or: 'throw' }): Promise<ProjectCurrentUser<ProjectId>>,\n getUser(options: GetUserOptions<HasTokenStore> & { or: 'anonymous' }): Promise<ProjectCurrentUser<ProjectId>>,\n getUser(options?: GetUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>,\n\n useNavigate(): (to: string) => void, // THIS_LINE_PLATFORM react-like\n\n [stackAppInternalsSymbol]: {\n toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>,\n setCurrentUser(userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null>): void,\n },\n }\n & AsyncStoreProperty<\"project\", [], Project, false>\n & { [K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: (options?: RedirectToOptions) => Promise<void> }\n);\nexport type StackClientAppConstructor = {\n new <\n TokenStoreType extends string,\n HasTokenStore extends (TokenStoreType extends {} ? true : boolean),\n ProjectId extends string\n >(options: StackClientAppConstructorOptions<HasTokenStore, ProjectId>): StackClientApp<HasTokenStore, ProjectId>,\n new (options: StackClientAppConstructorOptions<boolean, string>): StackClientApp<boolean, string>,\n\n [stackAppInternalsSymbol]: {\n fromClientJson<HasTokenStore extends boolean, ProjectId extends string>(\n json: StackClientAppJson<HasTokenStore, ProjectId>\n ): StackClientApp<HasTokenStore, ProjectId>,\n },\n};\nexport const StackClientApp: StackClientAppConstructor = _StackClientAppImpl;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,6BAAoC;AAsF7B,IAAM,iBAA4C;","names":[]}
@@ -23,7 +23,7 @@ __export(server_app_exports, {
23
23
  StackServerApp: () => StackServerApp
24
24
  });
25
25
  module.exports = __toCommonJS(server_app_exports);
26
- var import_implementations = require("../implementations");
26
+ var import_implementations = require("../implementations/index.js");
27
27
  var StackServerApp = import_implementations._StackServerAppImpl;
28
28
  // Annotate the CommonJS export names for ESM import in node:
29
29
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/stack-app/common.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { ProviderType } from \"@stackframe/stack-shared/dist/utils/oauth\";\n\nexport type RedirectToOptions = {\n replace?: boolean,\n noRedirectBack?: boolean,\n};\n\nexport type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultiple extends boolean> =\n & { [key in `${IsMultiple extends true ? \"list\" : \"get\"}${Capitalize<Name>}`]: (...args: Args) => Promise<Value> }\n & { [key in `use${Capitalize<Name>}`]: (...args: Args) => Value } // THIS_LINE_PLATFORM react-like\n\nexport type EmailConfig = {\n host: string,\n port: number,\n username: string,\n password: string,\n senderEmail: string,\n senderName: string,\n}\n\nexport type RedirectMethod = \"window\"\n | \"nextjs\" // THIS_LINE_PLATFORM next\n | \"none\"\n | {\n useNavigate: () => (to: string) => void,\n navigate?: (to: string) => void,\n }\n\n\nexport type GetUserOptions<HasTokenStore> =\n & {\n or?: 'redirect' | 'throw' | 'return-null' | 'anonymous' | 'anonymous-if-exists',\n tokenStore?: TokenStoreInit,\n }\n & (HasTokenStore extends false ? {\n tokenStore: TokenStoreInit,\n } : {});\n\nexport type RequestLike = {\n headers: {\n get: (name: string) => string | null,\n },\n};\n\nexport type TokenStoreInit<HasTokenStore extends boolean = boolean> =\n HasTokenStore extends true ? (\n | \"cookie\"\n | \"nextjs-cookie\"\n | \"memory\"\n | RequestLike\n | { accessToken: string, refreshToken: string }\n )\n : HasTokenStore extends false ? null\n : TokenStoreInit<true> | TokenStoreInit<false>;\n\nexport type HandlerUrls = {\n handler: string,\n signIn: string,\n signUp: string,\n afterSignIn: string,\n afterSignUp: string,\n signOut: string,\n afterSignOut: string,\n emailVerification: string,\n passwordReset: string,\n forgotPassword: string,\n home: string,\n oauthCallback: string,\n magicLinkCallback: string,\n accountSettings: string,\n teamInvitation: string,\n error: string,\n}\n\nexport type OAuthScopesOnSignIn = {\n [key in ProviderType]: string[];\n};\n\n/** @internal */\nexport const stackAppInternalsSymbol = Symbol.for(\"StackAuth--DO-NOT-USE-OR-YOU-WILL-BE-FIRED--StackAppInternals\");\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmFO,IAAM,0BAA0B,OAAO,IAAI,+DAA+D;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/stack-app/common.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { ProviderType } from \"@stackframe/stack-shared/dist/utils/oauth\";\n\nexport type RedirectToOptions = {\n replace?: boolean,\n noRedirectBack?: boolean,\n};\n\nexport type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultiple extends boolean> =\n & { [key in `${IsMultiple extends true ? \"list\" : \"get\"}${Capitalize<Name>}`]: (...args: Args) => Promise<Value> }\n & { [key in `use${Capitalize<Name>}`]: (...args: Args) => Value } // THIS_LINE_PLATFORM react-like\n\nexport type EmailConfig = {\n host: string,\n port: number,\n username: string,\n password: string,\n senderEmail: string,\n senderName: string,\n}\n\nexport type RedirectMethod = \"window\"\n | \"nextjs\" // THIS_LINE_PLATFORM next\n | \"none\"\n | {\n useNavigate: () => (to: string) => void,\n navigate?: (to: string) => void,\n }\n\n\nexport type GetUserOptions<HasTokenStore> =\n & {\n or?: 'redirect' | 'throw' | 'return-null' | 'anonymous' | 'anonymous-if-exists',\n tokenStore?: TokenStoreInit,\n }\n & (HasTokenStore extends false ? {\n tokenStore: TokenStoreInit,\n } : {});\n\nexport type RequestLike = {\n headers: {\n get: (name: string) => string | null,\n },\n};\n\nexport type TokenStoreInit<HasTokenStore extends boolean = boolean> =\n HasTokenStore extends true ? (\n | \"cookie\"\n | \"nextjs-cookie\"\n | \"memory\"\n | RequestLike\n | { accessToken: string, refreshToken: string }\n )\n : HasTokenStore extends false ? null\n : TokenStoreInit<true> | TokenStoreInit<false>;\n\nexport type HandlerUrls = {\n handler: string,\n signIn: string,\n signUp: string,\n afterSignIn: string,\n afterSignUp: string,\n signOut: string,\n afterSignOut: string,\n emailVerification: string,\n passwordReset: string,\n forgotPassword: string,\n home: string,\n oauthCallback: string,\n magicLinkCallback: string,\n accountSettings: string,\n teamInvitation: string,\n mfa: string,\n error: string,\n}\n\nexport type OAuthScopesOnSignIn = {\n [key in ProviderType]: string[];\n};\n\n/** @internal */\nexport const stackAppInternalsSymbol = Symbol.for(\"StackAuth--DO-NOT-USE-OR-YOU-WILL-BE-FIRED--StackAppInternals\");\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAoFO,IAAM,0BAA0B,OAAO,IAAI,+DAA+D;","names":[]}
@@ -26,8 +26,8 @@ __export(stack_app_exports, {
26
26
  stackAppInternalsSymbol: () => import_common.stackAppInternalsSymbol
27
27
  });
28
28
  module.exports = __toCommonJS(stack_app_exports);
29
- var import_apps = require("./apps");
30
- var import_common = require("./common");
29
+ var import_apps = require("./apps/index.js");
30
+ var import_common = require("./common.js");
31
31
  // Annotate the CommonJS export names for ESM import in node:
32
32
  0 && (module.exports = {
33
33
  StackAdminApp,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/stack-app/internal-api-keys/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { InternalApiKeyCreateCrudRequest } from \"@stackframe/stack-shared/dist/interface/adminInterface\";\nimport { InternalApiKeysCrud } from \"@stackframe/stack-shared/dist/interface/crud/internal-api-keys\";\n\nexport type InternalApiKeyBase = {\n id: string,\n description: string,\n expiresAt: Date,\n manuallyRevokedAt: Date | null,\n createdAt: Date,\n isValid(): boolean,\n whyInvalid(): \"expired\" | \"manually-revoked\" | null,\n revoke(): Promise<void>,\n};\n\nexport type InternalApiKeyBaseCrudRead = Pick<InternalApiKeysCrud[\"Admin\"][\"Read\"], \"id\" | \"created_at_millis\" | \"description\" | \"expires_at_millis\" | \"manually_revoked_at_millis\">;\n\nexport type InternalApiKeyFirstView = {\n publishableClientKey?: string,\n secretServerKey?: string,\n superSecretAdminKey?: string,\n} & InternalApiKeyBase;\n\nexport type InternalApiKey = {\n publishableClientKey: null | {\n lastFour: string,\n },\n secretServerKey: null | {\n lastFour: string,\n },\n superSecretAdminKey: null | {\n lastFour: string,\n },\n} & InternalApiKeyBase;\n\nexport type InternalApiKeyCreateOptions = {\n description: string,\n expiresAt: Date,\n hasPublishableClientKey: boolean,\n hasSecretServerKey: boolean,\n hasSuperSecretAdminKey: boolean,\n};\nexport function internalApiKeyCreateOptionsToCrud(options: InternalApiKeyCreateOptions): InternalApiKeyCreateCrudRequest {\n return {\n description: options.description,\n expires_at_millis: options.expiresAt.getTime(),\n has_publishable_client_key: options.hasPublishableClientKey,\n has_secret_server_key: options.hasSecretServerKey,\n has_super_secret_admin_key: options.hasSuperSecretAdminKey,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6CO,SAAS,kCAAkC,SAAuE;AACvH,SAAO;AAAA,IACL,aAAa,QAAQ;AAAA,IACrB,mBAAmB,QAAQ,UAAU,QAAQ;AAAA,IAC7C,4BAA4B,QAAQ;AAAA,IACpC,uBAAuB,QAAQ;AAAA,IAC/B,4BAA4B,QAAQ;AAAA,EACtC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/lib/stack-app/internal-api-keys/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport { InternalApiKeyCreateCrudRequest } from \"@stackframe/stack-shared/dist/interface/admin-interface\";\nimport { InternalApiKeysCrud } from \"@stackframe/stack-shared/dist/interface/crud/internal-api-keys\";\n\nexport type InternalApiKeyBase = {\n id: string,\n description: string,\n expiresAt: Date,\n manuallyRevokedAt: Date | null,\n createdAt: Date,\n isValid(): boolean,\n whyInvalid(): \"expired\" | \"manually-revoked\" | null,\n revoke(): Promise<void>,\n};\n\nexport type InternalApiKeyBaseCrudRead = Pick<InternalApiKeysCrud[\"Admin\"][\"Read\"], \"id\" | \"created_at_millis\" | \"description\" | \"expires_at_millis\" | \"manually_revoked_at_millis\">;\n\nexport type InternalApiKeyFirstView = {\n publishableClientKey?: string,\n secretServerKey?: string,\n superSecretAdminKey?: string,\n} & InternalApiKeyBase;\n\nexport type InternalApiKey = {\n publishableClientKey: null | {\n lastFour: string,\n },\n secretServerKey: null | {\n lastFour: string,\n },\n superSecretAdminKey: null | {\n lastFour: string,\n },\n} & InternalApiKeyBase;\n\nexport type InternalApiKeyCreateOptions = {\n description: string,\n expiresAt: Date,\n hasPublishableClientKey: boolean,\n hasSecretServerKey: boolean,\n hasSuperSecretAdminKey: boolean,\n};\nexport function internalApiKeyCreateOptionsToCrud(options: InternalApiKeyCreateOptions): InternalApiKeyCreateCrudRequest {\n return {\n description: options.description,\n expires_at_millis: options.expiresAt.getTime(),\n has_publishable_client_key: options.hasPublishableClientKey,\n has_secret_server_key: options.hasSecretServerKey,\n has_super_secret_admin_key: options.hasSuperSecretAdminKey,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8CO,SAAS,kCAAkC,SAAuE;AACvH,SAAO;AAAA,IACL,aAAa,QAAQ;AAAA,IACrB,mBAAmB,QAAQ,UAAU,QAAQ;AAAA,IAC7C,4BAA4B,QAAQ;AAAA,IACpC,uBAAuB,QAAQ;AAAA,IAC/B,4BAA4B,QAAQ;AAAA,EACtC;AACF;","names":[]}
@@ -34,7 +34,7 @@ __export(translations_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(translations_exports);
36
36
  var import_react = __toESM(require("react"));
37
- var import_translation_provider_client = require("../providers/translation-provider-client");
37
+ var import_translation_provider_client = require("../providers/translation-provider-client.js");
38
38
  function useTranslation() {
39
39
  const translationContext = import_react.default.useContext(import_translation_provider_client.TranslationContext);
40
40
  if (!translationContext) {
@@ -39,8 +39,8 @@ __export(stack_provider_client_exports, {
39
39
  module.exports = __toCommonJS(stack_provider_client_exports);
40
40
  var import_globals = require("@stackframe/stack-shared/dist/utils/globals");
41
41
  var import_react = __toESM(require("react"));
42
- var import__ = require("..");
43
- var import_stack_app = require("../lib/stack-app");
42
+ var import__ = require("../index.js");
43
+ var import_stack_app = require("../lib/stack-app/index.js");
44
44
  var import_jsx_runtime = require("react/jsx-runtime");
45
45
  var StackContext = import_react.default.createContext(null);
46
46
  function StackProviderClient(props) {
@@ -24,9 +24,9 @@ __export(stack_provider_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(stack_provider_exports);
26
26
  var import_react = require("react");
27
- var import_stack_app = require("../lib/stack-app");
28
- var import_stack_provider_client = require("./stack-provider-client");
29
- var import_translation_provider = require("./translation-provider");
27
+ var import_stack_app = require("../lib/stack-app/index.js");
28
+ var import_stack_provider_client = require("./stack-provider-client.js");
29
+ var import_translation_provider = require("./translation-provider.js");
30
30
  var import_jsx_runtime = require("react/jsx-runtime");
31
31
  function UserFetcher(props) {
32
32
  const userPromise = props.app.getUser({ or: "anonymous-if-exists" }).then((user) => user?.toClientJson() ?? null);
@@ -37,9 +37,9 @@ __export(theme_provider_exports, {
37
37
  module.exports = __toCommonJS(theme_provider_exports);
38
38
  var import_strings = require("@stackframe/stack-shared/dist/utils/strings");
39
39
  var import_color = __toESM(require("color"));
40
- var import_global_css = require("../generated/global-css");
41
- var import_browser_script = require("../utils/browser-script");
42
- var import_constants = require("../utils/constants");
40
+ var import_global_css = require("../generated/global-css.js");
41
+ var import_browser_script = require("../utils/browser-script.js");
42
+ var import_constants = require("../utils/constants.js");
43
43
  var import_jsx_runtime = require("react/jsx-runtime");
44
44
  function convertColorToCSSVars(obj) {
45
45
  return Object.fromEntries(Object.entries(obj).map(([key, value]) => {
@@ -24,8 +24,8 @@ __export(translation_provider_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(translation_provider_exports);
26
26
  var import_errors = require("@stackframe/stack-shared/dist/utils/errors");
27
- var import_quetzal_translations = require("../generated/quetzal-translations");
28
- var import_translation_provider_client = require("./translation-provider-client");
27
+ var import_quetzal_translations = require("../generated/quetzal-translations.js");
28
+ var import_translation_provider_client = require("./translation-provider-client.js");
29
29
  var import_jsx_runtime = require("react/jsx-runtime");
30
30
  function TranslationProvider({ lang, translationOverrides, children }) {
31
31
  const locale = import_quetzal_translations.quetzalLocales.get(lang ?? void 0);
@@ -23,7 +23,7 @@ __export(browser_script_exports, {
23
23
  BrowserScript: () => BrowserScript
24
24
  });
25
25
  module.exports = __toCommonJS(browser_script_exports);
26
- var import_ssr_layout_effect = require("../components/elements/ssr-layout-effect");
26
+ var import_ssr_layout_effect = require("../components/elements/ssr-layout-effect.js");
27
27
  var import_jsx_runtime = require("react/jsx-runtime");
28
28
  var script = () => {
29
29
  const attributes = ["data-joy-color-scheme", "data-mui-color-scheme", "data-theme", "data-color-scheme", "class"];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "//": "THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY",
3
3
  "name": "@stackframe/stack",
4
- "version": "2.8.12",
4
+ "version": "2.8.16",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -36,15 +36,15 @@
36
36
  "oauth4webapi": "^2.10.3",
37
37
  "@oslojs/otp": "^1.1.0",
38
38
  "qrcode": "^1.5.4",
39
- "react-avatar-editor": "^13.0.2",
39
+ "react-easy-crop": "^5.4.1",
40
40
  "react-hook-form": "^7.51.4",
41
41
  "rimraf": "^5.0.5",
42
42
  "tailwindcss-animate": "^1.0.7",
43
43
  "tsx": "^4.7.2",
44
44
  "yup": "^1.4.0",
45
- "@stackframe/stack-sc": "2.8.12",
46
- "@stackframe/stack-ui": "2.8.12",
47
- "@stackframe/stack-shared": "2.8.12"
45
+ "@stackframe/stack-sc": "2.8.16",
46
+ "@stackframe/stack-ui": "2.8.16",
47
+ "@stackframe/stack-shared": "2.8.16"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@types/react": ">=18.2 || >=19.0.0-rc.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/iframe-preventer.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { useEffect, useState } from \"react\";\n\nexport function IframePreventer({ children }: {\n children: React.ReactNode,\n}) {\n const [isIframe, setIsIframe] = useState(false);\n useEffect(() => {\n if (window.self !== window.top) {\n setIsIframe(true);\n }\n }, []);\n\n if (isIframe) {\n return <div>Stack Auth components may not run in an {'<'}iframe{'>'}.</div>;\n }\n\n return children;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mBAAoC;AAazB;AAXJ,SAAS,gBAAgB,EAAE,SAAS,GAExC;AACD,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,KAAK;AAC9C,8BAAU,MAAM;AACd,QAAI,OAAO,SAAS,OAAO,KAAK;AAC9B,kBAAY,IAAI;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,MAAI,UAAU;AACZ,WAAO,6CAAC,SAAI;AAAA;AAAA,MAAyC;AAAA,MAAI;AAAA,MAAO;AAAA,MAAI;AAAA,OAAC;AAAA,EACvE;AAEA,SAAO;AACT;","names":[]}
@@ -1,28 +0,0 @@
1
- "use client";
2
- "use client";
3
-
4
- // src/components/iframe-preventer.tsx
5
- import { useEffect, useState } from "react";
6
- import { jsxs } from "react/jsx-runtime";
7
- function IframePreventer({ children }) {
8
- const [isIframe, setIsIframe] = useState(false);
9
- useEffect(() => {
10
- if (window.self !== window.top) {
11
- setIsIframe(true);
12
- }
13
- }, []);
14
- if (isIframe) {
15
- return /* @__PURE__ */ jsxs("div", { children: [
16
- "Stack Auth components may not run in an ",
17
- "<",
18
- "iframe",
19
- ">",
20
- "."
21
- ] });
22
- }
23
- return children;
24
- }
25
- export {
26
- IframePreventer
27
- };
28
- //# sourceMappingURL=iframe-preventer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/iframe-preventer.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { useEffect, useState } from \"react\";\n\nexport function IframePreventer({ children }: {\n children: React.ReactNode,\n}) {\n const [isIframe, setIsIframe] = useState(false);\n useEffect(() => {\n if (window.self !== window.top) {\n setIsIframe(true);\n }\n }, []);\n\n if (isIframe) {\n return <div>Stack Auth components may not run in an {'<'}iframe{'>'}.</div>;\n }\n\n return children;\n}\n"],"mappings":";;;AAMA,SAAS,WAAW,gBAAgB;AAazB;AAXJ,SAAS,gBAAgB,EAAE,SAAS,GAExC;AACD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,YAAU,MAAM;AACd,QAAI,OAAO,SAAS,OAAO,KAAK;AAC9B,kBAAY,IAAI;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,MAAI,UAAU;AACZ,WAAO,qBAAC,SAAI;AAAA;AAAA,MAAyC;AAAA,MAAI;AAAA,MAAO;AAAA,MAAI;AAAA,OAAC;AAAA,EACvE;AAEA,SAAO;AACT;","names":[]}