@stackframe/stack 2.8.56 → 2.8.59

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 (250) hide show
  1. package/dist/components/api-key-dialogs.js.map +1 -1
  2. package/dist/components/api-key-table.js.map +1 -1
  3. package/dist/components/credential-sign-in.js.map +1 -1
  4. package/dist/components/credential-sign-up.js.map +1 -1
  5. package/dist/components/elements/form-warning.js.map +1 -1
  6. package/dist/components/elements/maybe-full-page.js.map +1 -1
  7. package/dist/components/elements/separator-with-text.js.map +1 -1
  8. package/dist/components/elements/sidebar-layout.js.map +1 -1
  9. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  10. package/dist/components/elements/user-avatar.js.map +1 -1
  11. package/dist/components/link.js.map +1 -1
  12. package/dist/components/magic-link-sign-in.js.map +1 -1
  13. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  14. package/dist/components/message-cards/message-card.js.map +1 -1
  15. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  16. package/dist/components/oauth-button-group.js.map +1 -1
  17. package/dist/components/oauth-button.js.map +1 -1
  18. package/dist/components/passkey-button.js.map +1 -1
  19. package/dist/components/profile-image-editor.js.map +1 -1
  20. package/dist/components/selected-team-switcher.js.map +1 -1
  21. package/dist/components/team-icon.js.map +1 -1
  22. package/dist/components/team-switcher.js.map +1 -1
  23. package/dist/components/use-in-iframe.js.map +1 -1
  24. package/dist/components/user-button.js.map +1 -1
  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.map +1 -1
  27. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  28. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  29. package/dist/components-page/account-settings/email-and-auth/emails-section.js +4 -3
  30. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  31. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  32. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  33. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  34. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  35. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  36. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  37. package/dist/components-page/account-settings/payments/payments-page.js +79 -0
  38. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -0
  39. package/dist/components-page/account-settings/payments/payments-panel.js +374 -0
  40. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -0
  41. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  42. package/dist/components-page/account-settings/section.js.map +1 -1
  43. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  44. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  45. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  46. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  47. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  48. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  49. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  50. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  51. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  52. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  53. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  54. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  55. package/dist/components-page/account-settings.js +22 -2
  56. package/dist/components-page/account-settings.js.map +1 -1
  57. package/dist/components-page/auth-page.js.map +1 -1
  58. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  59. package/dist/components-page/email-verification.js.map +1 -1
  60. package/dist/components-page/error-page.js.map +1 -1
  61. package/dist/components-page/forgot-password.js.map +1 -1
  62. package/dist/components-page/magic-link-callback.js.map +1 -1
  63. package/dist/components-page/mfa.js.map +1 -1
  64. package/dist/components-page/oauth-callback.js.map +1 -1
  65. package/dist/components-page/onboarding.js +170 -0
  66. package/dist/components-page/onboarding.js.map +1 -0
  67. package/dist/components-page/password-reset.js.map +1 -1
  68. package/dist/components-page/section.js.map +1 -1
  69. package/dist/components-page/sign-in.js.map +1 -1
  70. package/dist/components-page/sign-out.js.map +1 -1
  71. package/dist/components-page/sign-up.js.map +1 -1
  72. package/dist/components-page/stack-handler-client.js +13 -1
  73. package/dist/components-page/stack-handler-client.js.map +1 -1
  74. package/dist/components-page/stack-handler.js.map +1 -1
  75. package/dist/components-page/team-creation.js.map +1 -1
  76. package/dist/components-page/team-invitation.js +15 -1
  77. package/dist/components-page/team-invitation.js.map +1 -1
  78. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  79. package/dist/esm/components/api-key-table.js.map +1 -1
  80. package/dist/esm/components/credential-sign-in.js.map +1 -1
  81. package/dist/esm/components/credential-sign-up.js.map +1 -1
  82. package/dist/esm/components/elements/form-warning.js.map +1 -1
  83. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  84. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  85. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  86. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  87. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  88. package/dist/esm/components/link.js.map +1 -1
  89. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  90. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  91. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  92. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  93. package/dist/esm/components/oauth-button-group.js.map +1 -1
  94. package/dist/esm/components/oauth-button.js.map +1 -1
  95. package/dist/esm/components/passkey-button.js.map +1 -1
  96. package/dist/esm/components/profile-image-editor.js.map +1 -1
  97. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  98. package/dist/esm/components/team-icon.js.map +1 -1
  99. package/dist/esm/components/team-switcher.js.map +1 -1
  100. package/dist/esm/components/use-in-iframe.js.map +1 -1
  101. package/dist/esm/components/user-button.js.map +1 -1
  102. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  103. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  104. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  105. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  106. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +4 -3
  107. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  108. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  109. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  110. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  111. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  112. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  113. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  114. package/dist/esm/components-page/account-settings/payments/payments-page.js +55 -0
  115. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -0
  116. package/dist/esm/components-page/account-settings/payments/payments-panel.js +350 -0
  117. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -0
  118. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  119. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  120. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  121. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  122. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  123. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  124. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  125. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  126. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  127. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  128. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  129. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  130. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  131. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  132. package/dist/esm/components-page/account-settings.js +23 -3
  133. package/dist/esm/components-page/account-settings.js.map +1 -1
  134. package/dist/esm/components-page/auth-page.js.map +1 -1
  135. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  136. package/dist/esm/components-page/email-verification.js.map +1 -1
  137. package/dist/esm/components-page/error-page.js.map +1 -1
  138. package/dist/esm/components-page/forgot-password.js.map +1 -1
  139. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  140. package/dist/esm/components-page/mfa.js.map +1 -1
  141. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  142. package/dist/esm/components-page/onboarding.js +146 -0
  143. package/dist/esm/components-page/onboarding.js.map +1 -0
  144. package/dist/esm/components-page/password-reset.js.map +1 -1
  145. package/dist/esm/components-page/section.js.map +1 -1
  146. package/dist/esm/components-page/sign-in.js.map +1 -1
  147. package/dist/esm/components-page/sign-out.js.map +1 -1
  148. package/dist/esm/components-page/sign-up.js.map +1 -1
  149. package/dist/esm/components-page/stack-handler-client.js +13 -1
  150. package/dist/esm/components-page/stack-handler-client.js.map +1 -1
  151. package/dist/esm/components-page/stack-handler.js.map +1 -1
  152. package/dist/esm/components-page/team-creation.js.map +1 -1
  153. package/dist/esm/components-page/team-invitation.js +15 -1
  154. package/dist/esm/components-page/team-invitation.js.map +1 -1
  155. package/dist/esm/generated/global-css.js +1 -1
  156. package/dist/esm/generated/global-css.js.map +1 -1
  157. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  158. package/dist/esm/index.js.map +1 -1
  159. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  160. package/dist/esm/integrations/convex.js.map +1 -1
  161. package/dist/esm/lib/auth.js.map +1 -1
  162. package/dist/esm/lib/cookie.js.map +1 -1
  163. package/dist/esm/lib/hooks.js.map +1 -1
  164. package/dist/esm/lib/stack-app/api-keys/index.js.map +1 -1
  165. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js +235 -0
  166. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
  167. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js +210 -29
  168. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
  169. package/dist/esm/lib/stack-app/apps/implementations/common.js +2 -1
  170. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +1 -1
  171. package/dist/esm/lib/stack-app/apps/implementations/index.js.map +1 -1
  172. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js +40 -27
  173. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
  174. package/dist/esm/lib/stack-app/apps/index.js.map +1 -1
  175. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
  176. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
  177. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
  178. package/dist/esm/lib/stack-app/common.js.map +1 -1
  179. package/dist/esm/lib/stack-app/contact-channels/index.js.map +1 -1
  180. package/dist/esm/lib/stack-app/email-templates/index.js.map +1 -1
  181. package/dist/esm/lib/stack-app/index.js.map +1 -1
  182. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +1 -1
  183. package/dist/esm/lib/stack-app/permissions/index.js.map +1 -1
  184. package/dist/esm/lib/stack-app/projects/index.js +4 -0
  185. package/dist/esm/lib/stack-app/projects/index.js.map +1 -1
  186. package/dist/esm/lib/stack-app/teams/index.js.map +1 -1
  187. package/dist/esm/lib/stack-app/users/index.js +13 -12
  188. package/dist/esm/lib/stack-app/users/index.js.map +1 -1
  189. package/dist/esm/lib/translations.js.map +1 -1
  190. package/dist/esm/providers/stack-provider-client.js.map +1 -1
  191. package/dist/esm/providers/stack-provider.js.map +1 -1
  192. package/dist/esm/providers/theme-provider.js.map +1 -1
  193. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  194. package/dist/esm/providers/translation-provider.js.map +1 -1
  195. package/dist/esm/utils/browser-script.js.map +1 -1
  196. package/dist/esm/utils/constants.js.map +1 -1
  197. package/dist/esm/utils/url.js.map +1 -1
  198. package/dist/generated/global-css.js +1 -1
  199. package/dist/generated/global-css.js.map +1 -1
  200. package/dist/generated/quetzal-translations.js.map +1 -1
  201. package/dist/index.d.mts +306 -17
  202. package/dist/index.d.ts +306 -17
  203. package/dist/index.js.map +1 -1
  204. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  205. package/dist/integrations/convex.js.map +1 -1
  206. package/dist/lib/auth.js.map +1 -1
  207. package/dist/lib/cookie.js.map +1 -1
  208. package/dist/lib/hooks.js.map +1 -1
  209. package/dist/lib/stack-app/api-keys/index.js.map +1 -1
  210. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js +235 -0
  211. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
  212. package/dist/lib/stack-app/apps/implementations/client-app-impl.js +208 -27
  213. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
  214. package/dist/lib/stack-app/apps/implementations/common.js +2 -1
  215. package/dist/lib/stack-app/apps/implementations/common.js.map +1 -1
  216. package/dist/lib/stack-app/apps/implementations/index.js.map +1 -1
  217. package/dist/lib/stack-app/apps/implementations/server-app-impl.js +38 -25
  218. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
  219. package/dist/lib/stack-app/apps/index.js.map +1 -1
  220. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
  221. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
  222. package/dist/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
  223. package/dist/lib/stack-app/common.js.map +1 -1
  224. package/dist/lib/stack-app/connected-accounts/index.js.map +1 -1
  225. package/dist/lib/stack-app/contact-channels/index.js.map +1 -1
  226. package/dist/lib/stack-app/customers/index.js.map +1 -1
  227. package/dist/lib/stack-app/data-vault/index.js.map +1 -1
  228. package/dist/lib/stack-app/email/index.js.map +1 -1
  229. package/dist/lib/stack-app/email-templates/index.js.map +1 -1
  230. package/dist/lib/stack-app/index.js.map +1 -1
  231. package/dist/lib/stack-app/internal-api-keys/index.js.map +1 -1
  232. package/dist/lib/stack-app/notification-categories/index.js.map +1 -1
  233. package/dist/lib/stack-app/permissions/index.js.map +1 -1
  234. package/dist/lib/stack-app/project-configs/index.js.map +1 -1
  235. package/dist/lib/stack-app/projects/index.js +4 -0
  236. package/dist/lib/stack-app/projects/index.js.map +1 -1
  237. package/dist/lib/stack-app/teams/index.js.map +1 -1
  238. package/dist/lib/stack-app/users/index.js +15 -14
  239. package/dist/lib/stack-app/users/index.js.map +1 -1
  240. package/dist/lib/translations.js.map +1 -1
  241. package/dist/providers/stack-provider-client.js.map +1 -1
  242. package/dist/providers/stack-provider.js.map +1 -1
  243. package/dist/providers/theme-provider.js.map +1 -1
  244. package/dist/providers/translation-provider-client.js.map +1 -1
  245. package/dist/providers/translation-provider.js.map +1 -1
  246. package/dist/utils/browser-script.js.map +1 -1
  247. package/dist/utils/constants.js.map +1 -1
  248. package/dist/utils/url.js.map +1 -1
  249. package/package.json +21 -18
  250. package/CHANGELOG.md +0 -2072
package/dist/index.d.mts CHANGED
@@ -42,6 +42,15 @@ type RedirectMethod = "window" | "nextjs" | "none" | {
42
42
  };
43
43
  type GetCurrentUserOptions<HasTokenStore> = {
44
44
  or?: 'redirect' | 'throw' | 'return-null' | 'anonymous' | /** @deprecated */ 'anonymous-if-exists[deprecated]';
45
+ /**
46
+ * Whether to include restricted users (users who haven't completed onboarding requirements like email verification).
47
+ * By default, restricted users are filtered out (treated similar to anonymous users).
48
+ *
49
+ * Note: This option cannot be set to false when `or: 'anonymous'` is used, as all anonymous users are also restricted.
50
+ *
51
+ * @default false
52
+ */
53
+ includeRestricted?: boolean;
45
54
  tokenStore?: TokenStoreInit;
46
55
  } & (HasTokenStore extends false ? {
47
56
  tokenStore: TokenStoreInit;
@@ -89,6 +98,7 @@ type HandlerUrls = {
89
98
  teamInvitation: string;
90
99
  mfa: string;
91
100
  error: string;
101
+ onboarding: string;
92
102
  };
93
103
  type OAuthScopesOnSignIn = {
94
104
  [key in ProviderType]: string[];
@@ -104,6 +114,22 @@ type AuthLike<ExtraOptions = {}> = {
104
114
  signOut(options?: {
105
115
  redirectUrl?: URL | string;
106
116
  }): Promise<void>;
117
+ /**
118
+ * Returns the current access token, or null if the user is not signed in.
119
+ *
120
+ * The access token is a short-lived JWT that can be used to authenticate requests to external servers.
121
+ * It will be automatically refreshed when it expires.
122
+ */
123
+ getAccessToken(options?: {} & ExtraOptions): Promise<string | null>;
124
+ useAccessToken(options?: {} & ExtraOptions): string | null;
125
+ /**
126
+ * Returns the current refresh token, or null if the user is not signed in.
127
+ *
128
+ * The refresh token is a long-lived token that can be used to obtain new access tokens.
129
+ * It should be kept secret and never exposed to the client.
130
+ */
131
+ getRefreshToken(options?: {} & ExtraOptions): Promise<string | null>;
132
+ useRefreshToken(options?: {} & ExtraOptions): string | null;
107
133
  /**
108
134
  * Returns headers for sending authenticated HTTP requests to external servers. Most commonly used in cross-origin
109
135
  * requests. Similar to `getAuthJson`, but specifically for HTTP requests.
@@ -120,8 +146,8 @@ type AuthLike<ExtraOptions = {}> = {
120
146
  * must include `x-stack-auth` in the [`Access-Control-Allow-Headers` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers)
121
147
  * of the CORS preflight response.
122
148
  *
123
- * If you are not using HTTP (and hence cannot set headers), you will need to use the `getAuthJson()` function
124
- * instead.
149
+ * If you are not using HTTP (and hence cannot set headers), you will need to use the `getAccessToken()` and
150
+ * `getRefreshToken()` functions instead.
125
151
  *
126
152
  * Example:
127
153
  *
@@ -144,7 +170,12 @@ type AuthLike<ExtraOptions = {}> = {
144
170
  getAuthHeaders(options?: {} & ExtraOptions): Promise<{
145
171
  "x-stack-auth": string;
146
172
  }>;
173
+ useAuthHeaders(options?: {} & ExtraOptions): {
174
+ "x-stack-auth": string;
175
+ };
147
176
  /**
177
+ * @deprecated Use `getAccessToken()` and `getRefreshToken()` instead.
178
+ *
148
179
  * Creates a JSON-serializable object containing the information to authenticate a user on an external server.
149
180
  * Similar to `getAuthHeaders`, but returns an object that can be sent over any protocol instead of just
150
181
  * HTTP headers.
@@ -175,6 +206,11 @@ type AuthLike<ExtraOptions = {}> = {
175
206
  accessToken: string | null;
176
207
  refreshToken: string | null;
177
208
  }>;
209
+ /** @deprecated Use `useAccessToken()` and `useRefreshToken()` instead. */
210
+ useAuthJson(options?: {} & ExtraOptions): {
211
+ accessToken: string | null;
212
+ refreshToken: string | null;
213
+ };
178
214
  };
179
215
  /** @internal */
180
216
  declare const stackAppInternalsSymbol: unique symbol;
@@ -213,6 +249,17 @@ type CustomerProduct = {
213
249
  customerType: "user" | "team" | "custom";
214
250
  isServerOnly: boolean;
215
251
  stackable: boolean;
252
+ type: "one_time" | "subscription";
253
+ subscription: null | {
254
+ currentPeriodEnd: Date | null;
255
+ cancelAtPeriodEnd: boolean;
256
+ isCancelable: boolean;
257
+ };
258
+ switchOptions?: Array<{
259
+ productId: string;
260
+ displayName: string;
261
+ prices: InlineProduct["prices"];
262
+ }>;
216
263
  };
217
264
  type CustomerProductsList = CustomerProduct[] & {
218
265
  nextCursor: string | null;
@@ -228,6 +275,21 @@ type CustomerProductsRequestOptions = ({
228
275
  } & CustomerProductsListOptions) | ({
229
276
  customCustomerId: string;
230
277
  } & CustomerProductsListOptions);
278
+ type CustomerDefaultPaymentMethod = {
279
+ id: string;
280
+ brand: string | null;
281
+ last4: string | null;
282
+ exp_month: number | null;
283
+ exp_year: number | null;
284
+ } | null;
285
+ type CustomerBilling = {
286
+ hasCustomer: boolean;
287
+ defaultPaymentMethod: CustomerDefaultPaymentMethod;
288
+ };
289
+ type CustomerPaymentMethodSetupIntent = {
290
+ clientSecret: string;
291
+ stripeAccountId: string;
292
+ };
231
293
  type Customer<IsServer extends boolean = false> = {
232
294
  readonly id: string;
233
295
  createCheckoutUrl(options: ({
@@ -237,7 +299,16 @@ type Customer<IsServer extends boolean = false> = {
237
299
  product: InlineProduct;
238
300
  returnUrl?: string;
239
301
  } : never))): Promise<string>;
240
- } & AsyncStoreProperty<"item", [
302
+ createPaymentMethodSetupIntent(): Promise<CustomerPaymentMethodSetupIntent>;
303
+ setDefaultPaymentMethodFromSetupIntent(setupIntentId: string): Promise<CustomerDefaultPaymentMethod>;
304
+ switchSubscription(options: {
305
+ fromProductId: string;
306
+ toProductId: string;
307
+ priceId?: string;
308
+ quantity?: number;
309
+ }): Promise<void>;
310
+ } & AsyncStoreProperty<"billing", [
311
+ ], CustomerBilling, false> & AsyncStoreProperty<"item", [
241
312
  itemId: string
242
313
  ], IsServer extends true ? ServerItem : Item, false> & AsyncStoreProperty<"products", [
243
314
  options?: CustomerProductsListOptions
@@ -259,6 +330,137 @@ type AdminSentEmail = {
259
330
  sentAt: Date;
260
331
  error?: unknown;
261
332
  };
333
+ type AdminEmailOutboxRecipient = {
334
+ type: "user-primary-email";
335
+ userId: string;
336
+ } | {
337
+ type: "user-custom-emails";
338
+ userId: string;
339
+ emails: string[];
340
+ } | {
341
+ type: "custom-emails";
342
+ emails: string[];
343
+ };
344
+ type AdminEmailOutboxStatus = "paused" | "preparing" | "rendering" | "render-error" | "scheduled" | "queued" | "sending" | "server-error" | "skipped" | "bounced" | "delivery-delayed" | "sent" | "opened" | "clicked" | "marked-as-spam";
345
+ type AdminEmailOutboxSimpleStatus = "in-progress" | "ok" | "error";
346
+ type AdminEmailOutboxBase = {
347
+ id: string;
348
+ createdAt: Date;
349
+ updatedAt: Date;
350
+ to: AdminEmailOutboxRecipient;
351
+ scheduledAt: Date;
352
+ isPaused: false;
353
+ hasRendered: false;
354
+ hasDelivered: false;
355
+ };
356
+ type AdminEmailOutboxRenderedFields = Omit<AdminEmailOutboxBase, "hasRendered"> & {
357
+ hasRendered: true;
358
+ startedRenderingAt: Date;
359
+ renderedAt: Date;
360
+ subject: string;
361
+ html: string | null;
362
+ text: string | null;
363
+ isTransactional: boolean;
364
+ isHighPriority: boolean;
365
+ notificationCategoryId: string | null;
366
+ };
367
+ type AdminEmailOutboxStartedSendingFields = AdminEmailOutboxRenderedFields & {
368
+ startedSendingAt: Date;
369
+ };
370
+ type AdminEmailOutboxFinishedDeliveringFields = Omit<AdminEmailOutboxStartedSendingFields, "hasDelivered"> & {
371
+ hasDelivered: true;
372
+ deliveredAt: Date;
373
+ };
374
+ type AdminEmailOutboxPaused = Omit<AdminEmailOutboxBase, "isPaused"> & {
375
+ status: "paused";
376
+ simpleStatus: "in-progress";
377
+ isPaused: true;
378
+ };
379
+ type AdminEmailOutboxPreparing = AdminEmailOutboxBase & {
380
+ status: "preparing";
381
+ simpleStatus: "in-progress";
382
+ };
383
+ type AdminEmailOutboxRendering = AdminEmailOutboxBase & {
384
+ status: "rendering";
385
+ simpleStatus: "in-progress";
386
+ startedRenderingAt: Date;
387
+ };
388
+ type AdminEmailOutboxRenderError = AdminEmailOutboxBase & {
389
+ status: "render-error";
390
+ simpleStatus: "error";
391
+ startedRenderingAt: Date;
392
+ renderedAt: Date;
393
+ renderError: string;
394
+ };
395
+ type AdminEmailOutboxScheduled = AdminEmailOutboxRenderedFields & {
396
+ status: "scheduled";
397
+ simpleStatus: "in-progress";
398
+ };
399
+ type AdminEmailOutboxQueued = AdminEmailOutboxRenderedFields & {
400
+ status: "queued";
401
+ simpleStatus: "in-progress";
402
+ };
403
+ type AdminEmailOutboxSending = AdminEmailOutboxStartedSendingFields & {
404
+ status: "sending";
405
+ simpleStatus: "in-progress";
406
+ };
407
+ type AdminEmailOutboxServerError = AdminEmailOutboxStartedSendingFields & {
408
+ status: "server-error";
409
+ simpleStatus: "error";
410
+ errorAt: Date;
411
+ serverError: string;
412
+ };
413
+ type AdminEmailOutboxSkipped = Omit<AdminEmailOutboxBase, "hasRendered"> & {
414
+ status: "skipped";
415
+ simpleStatus: "ok";
416
+ hasRendered: boolean;
417
+ skippedAt: Date;
418
+ skippedReason: string;
419
+ skippedDetails: Record<string, unknown>;
420
+ startedRenderingAt?: Date;
421
+ renderedAt?: Date;
422
+ subject?: string;
423
+ html?: string | null;
424
+ text?: string | null;
425
+ isTransactional?: boolean;
426
+ isHighPriority?: boolean;
427
+ notificationCategoryId?: string | null;
428
+ startedSendingAt?: Date;
429
+ };
430
+ type AdminEmailOutboxBounced = AdminEmailOutboxStartedSendingFields & {
431
+ status: "bounced";
432
+ simpleStatus: "error";
433
+ bouncedAt: Date;
434
+ };
435
+ type AdminEmailOutboxDeliveryDelayed = AdminEmailOutboxStartedSendingFields & {
436
+ status: "delivery-delayed";
437
+ simpleStatus: "ok";
438
+ deliveryDelayedAt: Date;
439
+ };
440
+ type AdminEmailOutboxSent = AdminEmailOutboxFinishedDeliveringFields & {
441
+ status: "sent";
442
+ simpleStatus: "ok";
443
+ canHaveDeliveryInfo: boolean;
444
+ };
445
+ type AdminEmailOutboxOpened = AdminEmailOutboxFinishedDeliveringFields & {
446
+ status: "opened";
447
+ simpleStatus: "ok";
448
+ openedAt: Date;
449
+ canHaveDeliveryInfo: true;
450
+ };
451
+ type AdminEmailOutboxClicked = AdminEmailOutboxFinishedDeliveringFields & {
452
+ status: "clicked";
453
+ simpleStatus: "ok";
454
+ clickedAt: Date;
455
+ canHaveDeliveryInfo: true;
456
+ };
457
+ type AdminEmailOutboxMarkedAsSpam = AdminEmailOutboxFinishedDeliveringFields & {
458
+ status: "marked-as-spam";
459
+ simpleStatus: "ok";
460
+ markedAsSpamAt: Date;
461
+ canHaveDeliveryInfo: true;
462
+ };
463
+ type AdminEmailOutbox = AdminEmailOutboxPaused | AdminEmailOutboxPreparing | AdminEmailOutboxRendering | AdminEmailOutboxRenderError | AdminEmailOutboxScheduled | AdminEmailOutboxQueued | AdminEmailOutboxSending | AdminEmailOutboxServerError | AdminEmailOutboxSkipped | AdminEmailOutboxBounced | AdminEmailOutboxDeliveryDelayed | AdminEmailOutboxSent | AdminEmailOutboxOpened | AdminEmailOutboxClicked | AdminEmailOutboxMarkedAsSpam;
262
464
  type SendEmailOptionsBase = {
263
465
  themeId?: string | null | false;
264
466
  subject?: string;
@@ -283,6 +485,25 @@ type SendEmailOptions = SendEmailOptionsBase & XOR<[
283
485
  draftId: string;
284
486
  }
285
487
  ]>;
488
+ type EmailDeliveryWindowStats = {
489
+ sent: number;
490
+ bounced: number;
491
+ marked_as_spam: number;
492
+ };
493
+ type EmailDeliveryStats = {
494
+ hour: EmailDeliveryWindowStats;
495
+ day: EmailDeliveryWindowStats;
496
+ week: EmailDeliveryWindowStats;
497
+ month: EmailDeliveryWindowStats;
498
+ };
499
+ type EmailDeliveryCapacity = {
500
+ rate_per_second: number;
501
+ penalty_factor: number;
502
+ };
503
+ type EmailDeliveryInfo = {
504
+ stats: EmailDeliveryStats;
505
+ capacity: EmailDeliveryCapacity;
506
+ };
286
507
 
287
508
  type InternalApiKeyBase = {
288
509
  id: string;
@@ -485,18 +706,21 @@ type ServerOAuthProvider = {
485
706
  }): Promise<Result<void, InstanceType<typeof KnownErrors.OAuthProviderAccountIdAlreadyUsedForSignIn>>>;
486
707
  delete(): Promise<void>;
487
708
  };
488
- type Session = {
489
- getTokens(): Promise<{
490
- accessToken: string | null;
491
- refreshToken: string | null;
492
- }>;
493
- };
494
709
  /**
495
710
  * Contains everything related to the current user session.
496
711
  */
497
712
  type Auth = AuthLike<{}> & {
498
713
  readonly _internalSession: InternalSession;
499
- readonly currentSession: Session;
714
+ readonly currentSession: {
715
+ getTokens(): Promise<{
716
+ accessToken: string | null;
717
+ refreshToken: string | null;
718
+ }>;
719
+ useTokens(): {
720
+ accessToken: string | null;
721
+ refreshToken: string | null;
722
+ };
723
+ };
500
724
  };
501
725
  /**
502
726
  * ```
@@ -542,6 +766,18 @@ type BaseUser = {
542
766
  readonly passkeyAuthEnabled: boolean;
543
767
  readonly isMultiFactorRequired: boolean;
544
768
  readonly isAnonymous: boolean;
769
+ /**
770
+ * Whether the user is in restricted state (signed up but hasn't completed onboarding requirements).
771
+ * For example, if email verification is required but the user hasn't verified their email yet.
772
+ */
773
+ readonly isRestricted: boolean;
774
+ /**
775
+ * The reason why the user is restricted, e.g., { type: "email_not_verified" } or { type: "anonymous" }.
776
+ * Null if the user is not restricted.
777
+ */
778
+ readonly restrictedReason: {
779
+ type: "anonymous" | "email_not_verified";
780
+ } | null;
545
781
  toClientJson(): CurrentUserCrud["Client"]["Read"];
546
782
  /**
547
783
  * @deprecated, use contact channel's usedForAuth instead
@@ -555,7 +791,7 @@ type BaseUser = {
555
791
  }[];
556
792
  };
557
793
  type UserExtra = {
558
- setDisplayName(displayName: string): Promise<void>;
794
+ setDisplayName(displayName: string | null): Promise<void>;
559
795
  /** @deprecated Use contact channel's sendVerificationEmail instead */
560
796
  sendVerificationEmail(): Promise<KnownErrors["EmailAlreadyVerified"] | void>;
561
797
  setClientMetadata(metadata: any): Promise<void>;
@@ -611,7 +847,7 @@ type UserExtra = {
611
847
  usePermission(scope: Team, permissionId: string): TeamPermission | null;
612
848
  usePermission(permissionId: string): TeamPermission | null;
613
849
  readonly selectedTeam: Team | null;
614
- setSelectedTeam(team: Team | null): Promise<void>;
850
+ setSelectedTeam(teamOrId: string | Team | null): Promise<void>;
615
851
  createTeam(data: TeamCreateOptions): Promise<Team>;
616
852
  leaveTeam(team: Team): Promise<void>;
617
853
  getActiveSessions(): Promise<ActiveSession[]>;
@@ -639,8 +875,8 @@ type User = BaseUser;
639
875
  type CurrentUser = BaseUser & Auth & UserExtra & Customer;
640
876
  type CurrentInternalUser = CurrentUser & InternalUserExtra;
641
877
  type ProjectCurrentUser<ProjectId> = ProjectId extends "internal" ? CurrentInternalUser : CurrentUser;
642
- type TokenPartialUser = Pick<User, "id" | "displayName" | "primaryEmail" | "primaryEmailVerified" | "isAnonymous">;
643
- type SyncedPartialUser = TokenPartialUser & Pick<User, "id" | "displayName" | "primaryEmail" | "primaryEmailVerified" | "profileImageUrl" | "signedUpAt" | "clientMetadata" | "clientReadOnlyMetadata" | "isAnonymous" | "hasPassword">;
878
+ type TokenPartialUser = Pick<User, "id" | "displayName" | "primaryEmail" | "primaryEmailVerified" | "isAnonymous" | "isRestricted" | "restrictedReason">;
879
+ type SyncedPartialUser = TokenPartialUser & Pick<User, "id" | "displayName" | "primaryEmail" | "primaryEmailVerified" | "profileImageUrl" | "signedUpAt" | "clientMetadata" | "clientReadOnlyMetadata" | "isAnonymous" | "hasPassword" | "isRestricted" | "restrictedReason">;
644
880
  type ActiveSession = {
645
881
  id: string;
646
882
  userId: string;
@@ -651,13 +887,14 @@ type ActiveSession = {
651
887
  geoInfo?: GeoInfo;
652
888
  };
653
889
  type UserUpdateOptions = {
654
- displayName?: string;
890
+ displayName?: string | null;
655
891
  clientMetadata?: ReadonlyJson;
656
892
  selectedTeamId?: string | null;
657
893
  totpMultiFactorSecret?: Uint8Array | null;
658
894
  profileImageUrl?: string | null;
659
895
  otpAuthEnabled?: boolean;
660
896
  passkeyAuthEnabled?: boolean;
897
+ primaryEmail?: string | null;
661
898
  };
662
899
  type ServerBaseUser = {
663
900
  setPrimaryEmail(email: string | null, options?: {
@@ -704,7 +941,12 @@ type ServerBaseUser = {
704
941
  createSession(options?: {
705
942
  expiresInMillis?: number;
706
943
  isImpersonation?: boolean;
707
- }): Promise<Session>;
944
+ }): Promise<{
945
+ getTokens(): Promise<{
946
+ accessToken: string | null;
947
+ refreshToken: string | null;
948
+ }>;
949
+ }>;
708
950
  } & AsyncStoreProperty<"team", [id: string], ServerTeam | null, false> & AsyncStoreProperty<"teams", [], ServerTeam[], true> & AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
709
951
  direct?: boolean;
710
952
  }], AdminTeamPermission | null, false> & AsyncStoreProperty<"permissions", [scope: Team, options?: {
@@ -811,6 +1053,15 @@ type ServerListUsersOptions = {
811
1053
  orderBy?: 'signedUpAt';
812
1054
  desc?: boolean;
813
1055
  query?: string;
1056
+ /**
1057
+ * Whether to include restricted users (users who haven't completed onboarding requirements).
1058
+ * Defaults to false.
1059
+ */
1060
+ includeRestricted?: boolean;
1061
+ /**
1062
+ * Whether to include anonymous users (and restricted users).
1063
+ * Defaults to false.
1064
+ */
814
1065
  includeAnonymous?: boolean;
815
1066
  };
816
1067
  type ServerTeamCreateOptions = TeamCreateOptions & {
@@ -925,6 +1176,8 @@ type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends s
925
1176
  allowConnectedAccounts: boolean;
926
1177
  }): Promise<Result<ServerOAuthProvider, InstanceType<typeof KnownErrors.OAuthProviderAccountIdAlreadyUsedForSignIn>>>;
927
1178
  sendEmail(options: SendEmailOptions): Promise<void>;
1179
+ getEmailDeliveryStats(): Promise<EmailDeliveryInfo>;
1180
+ useEmailDeliveryStats(): EmailDeliveryInfo;
928
1181
  } & AsyncStoreProperty<"user", [id: string], ServerUser | null, false> & Omit<AsyncStoreProperty<"users", [], ServerUser[], true>, "listUsers" | "useUsers"> & AsyncStoreProperty<"teams", [], ServerTeam[], true> & AsyncStoreProperty<"dataVaultStore", [id: string], DataVaultStore, false> & AsyncStoreProperty<"item", [
929
1182
  {
930
1183
  itemId: string;
@@ -941,6 +1194,21 @@ type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends s
941
1194
  ], CustomerProductsList, true> & StackClientApp<HasTokenStore, ProjectId>);
942
1195
  declare const StackServerApp: StackServerAppConstructor;
943
1196
 
1197
+ type EmailOutboxListOptions = {
1198
+ status?: string;
1199
+ simpleStatus?: string;
1200
+ limit?: number;
1201
+ cursor?: string;
1202
+ };
1203
+ type EmailOutboxListResult = {
1204
+ items: AdminEmailOutbox[];
1205
+ nextCursor: string | null;
1206
+ };
1207
+ type EmailOutboxUpdateOptions = {
1208
+ isPaused?: boolean;
1209
+ scheduledAtMillis?: number;
1210
+ cancel?: boolean;
1211
+ };
944
1212
  type StackAdminAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = (StackServerAppConstructorOptions<HasTokenStore, ProjectId> & {
945
1213
  superSecretAdminKey?: string;
946
1214
  projectOwnerSession?: InternalSession;
@@ -1073,6 +1341,12 @@ type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends st
1073
1341
  type: "subscription" | "one-time-purchase";
1074
1342
  id: string;
1075
1343
  }): Promise<void>;
1344
+ listOutboxEmails(options?: EmailOutboxListOptions): Promise<EmailOutboxListResult>;
1345
+ getOutboxEmail(id: string): Promise<AdminEmailOutbox>;
1346
+ updateOutboxEmail(id: string, options: EmailOutboxUpdateOptions): Promise<AdminEmailOutbox>;
1347
+ pauseOutboxEmail(id: string): Promise<AdminEmailOutbox>;
1348
+ unpauseOutboxEmail(id: string): Promise<AdminEmailOutbox>;
1349
+ cancelOutboxEmail(id: string): Promise<AdminEmailOutbox>;
1076
1350
  } & StackServerApp<HasTokenStore, ProjectId>);
1077
1351
  declare const StackAdminApp: StackAdminAppConstructor;
1078
1352
 
@@ -1090,6 +1364,9 @@ type ProjectConfig = {
1090
1364
  type OAuthProviderConfig = {
1091
1365
  readonly id: string;
1092
1366
  };
1367
+ /**
1368
+ * @deprecated This type is deprecated. Use the new config override setup instead.
1369
+ */
1093
1370
  type AdminProjectConfig = {
1094
1371
  readonly signUpEnabled: boolean;
1095
1372
  readonly credentialEnabled: boolean;
@@ -1335,6 +1612,12 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
1335
1612
  or: 'anonymous';
1336
1613
  }): Promise<ProjectCurrentUser<ProjectId>>;
1337
1614
  getUser(options?: GetCurrentUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>;
1615
+ cancelSubscription(options: {
1616
+ productId: string;
1617
+ } | {
1618
+ productId: string;
1619
+ teamId: string;
1620
+ }): Promise<void>;
1338
1621
  getPartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
1339
1622
  from: 'token';
1340
1623
  }): Promise<TokenPartialUser | null>;
@@ -1387,6 +1670,7 @@ declare const iconMap: {
1387
1670
  readonly Key: React$1.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1388
1671
  readonly Settings: React$1.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1389
1672
  readonly CirclePlus: React$1.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1673
+ readonly CreditCard: React$1.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1390
1674
  };
1391
1675
  declare function AccountSettings(props: {
1392
1676
  fullPage?: boolean;
@@ -1462,6 +1746,10 @@ declare function OAuthCallback({ fullPage }: {
1462
1746
  fullPage?: boolean;
1463
1747
  }): react_jsx_runtime.JSX.Element;
1464
1748
 
1749
+ declare function Onboarding(props: {
1750
+ fullPage?: boolean;
1751
+ }): react_jsx_runtime.JSX.Element | null;
1752
+
1465
1753
  declare function PasswordReset({ searchParams, fullPage, }: {
1466
1754
  searchParams: Record<string, string>;
1467
1755
  fullPage?: boolean;
@@ -1490,6 +1778,7 @@ type Components = {
1490
1778
  AccountSettings: typeof AccountSettings;
1491
1779
  CliAuthConfirmation: typeof CliAuthConfirmation;
1492
1780
  MFA: typeof MFA;
1781
+ Onboarding: typeof Onboarding;
1493
1782
  };
1494
1783
  type BaseHandlerProps = {
1495
1784
  fullPage: boolean;
@@ -1761,4 +2050,4 @@ type UserButtonProps = {
1761
2050
  };
1762
2051
  declare function UserButton(props: UserButtonProps): react_jsx_runtime.JSX.Element;
1763
2052
 
1764
- export { AccountSettings, type AdminDomainConfig, type AdminEmailConfig, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type Auth, AuthPage, CliAuthConfirmation, type Connection, type ContactChannel, CredentialSignIn, CredentialSignUp, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, EmailVerification, ForgotPassword, type GetCurrentUserOptions, type GetCurrentUserOptions as GetUserOptions, type HandlerUrls, type InternalApiKey, type InternalApiKeyBase, type InternalApiKeyBaseCrudRead, type InternalApiKeyCreateOptions, type InternalApiKeyFirstView, MagicLinkSignIn, MessageCard, OAuthButton, OAuthButtonGroup, type OAuthConnection, type OAuthProvider, type OAuthProviderConfig, type OAuthScopesOnSignIn, PasswordReset, type Project, type ProjectConfig, SelectedTeamSwitcher, type ServerContactChannel, type ServerListUsersOptions, type ServerOAuthProvider, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, type Session, SignIn, SignUp, StackAdminApp, type StackAdminAppConstructor, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructor, type StackClientAppConstructorOptions, type StackClientAppJson, StackHandler, NextStackProvider as StackProvider, StackServerApp, type StackServerAppConstructor, type StackServerAppConstructorOptions, StackTheme, type Team, type TeamCreateOptions, type TeamInvitation$1 as TeamInvitation, type TeamMemberProfile, TeamSwitcher, type TeamUpdateOptions, type TeamUser, type User, UserAvatar, UserButton, stackAppInternalsSymbol, useStackApp, useUser };
2053
+ export { AccountSettings, type AdminDomainConfig, type AdminEmailConfig, type AdminEmailOutbox, type AdminEmailOutboxRecipient, type AdminEmailOutboxSimpleStatus, type AdminEmailOutboxStatus, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type Auth, AuthPage, CliAuthConfirmation, type Connection, type ContactChannel, CredentialSignIn, CredentialSignUp, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, type EmailOutboxListOptions, type EmailOutboxListResult, type EmailOutboxUpdateOptions, EmailVerification, ForgotPassword, type GetCurrentUserOptions, type GetCurrentUserOptions as GetUserOptions, type HandlerUrls, type InternalApiKey, type InternalApiKeyBase, type InternalApiKeyBaseCrudRead, type InternalApiKeyCreateOptions, type InternalApiKeyFirstView, MagicLinkSignIn, MessageCard, OAuthButton, OAuthButtonGroup, type OAuthConnection, type OAuthProvider, type OAuthProviderConfig, type OAuthScopesOnSignIn, PasswordReset, type Project, type ProjectConfig, SelectedTeamSwitcher, type ServerContactChannel, type ServerListUsersOptions, type ServerOAuthProvider, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, SignIn, SignUp, StackAdminApp, type StackAdminAppConstructor, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructor, type StackClientAppConstructorOptions, type StackClientAppJson, StackHandler, NextStackProvider as StackProvider, StackServerApp, type StackServerAppConstructor, type StackServerAppConstructorOptions, StackTheme, type Team, type TeamCreateOptions, type TeamInvitation$1 as TeamInvitation, type TeamMemberProfile, TeamSwitcher, type TeamUpdateOptions, type TeamUser, type User, UserAvatar, UserButton, stackAppInternalsSymbol, useStackApp, useUser };