@stackframe/stack 2.5.17 → 2.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/components/credential-sign-in.js +4 -1
- package/dist/components/credential-sign-in.js.map +1 -1
- package/dist/components/elements/sidebar-layout.d.mts +21 -0
- package/dist/components/elements/sidebar-layout.d.ts +21 -0
- package/dist/components/elements/sidebar-layout.js +125 -0
- package/dist/components/elements/sidebar-layout.js.map +1 -0
- package/dist/components/elements/user-avatar.d.mts +5 -11
- package/dist/components/elements/user-avatar.d.ts +5 -11
- package/dist/components/elements/user-avatar.js.map +1 -1
- package/dist/components/message-cards/predefined-message-card.d.mts +1 -1
- package/dist/components/message-cards/predefined-message-card.d.ts +1 -1
- package/dist/components/message-cards/predefined-message-card.js +8 -0
- package/dist/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/components/selected-team-switcher.d.mts +1 -0
- package/dist/components/selected-team-switcher.d.ts +1 -0
- package/dist/components/selected-team-switcher.js +35 -5
- package/dist/components/selected-team-switcher.js.map +1 -1
- package/dist/components-page/account-settings.js +123 -31
- package/dist/components-page/account-settings.js.map +1 -1
- package/dist/components-page/auth-page.d.mts +1 -0
- package/dist/components-page/auth-page.d.ts +1 -0
- package/dist/components-page/auth-page.js +4 -1
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/forgot-password.d.mts +4 -1
- package/dist/components-page/forgot-password.d.ts +4 -1
- package/dist/components-page/forgot-password.js +55 -7
- package/dist/components-page/forgot-password.js.map +1 -1
- package/dist/components-page/password-reset.d.mts +6 -2
- package/dist/components-page/password-reset.d.ts +6 -2
- package/dist/components-page/password-reset.js +100 -8
- package/dist/components-page/password-reset.js.map +1 -1
- package/dist/components-page/stack-handler.d.mts +1 -0
- package/dist/components-page/stack-handler.d.ts +1 -0
- package/dist/components-page/stack-handler.js +32 -6
- package/dist/components-page/stack-handler.js.map +1 -1
- package/dist/{components/password-reset-form.d.mts → components-page/team-creation.d.mts} +2 -3
- package/dist/{components/password-reset-form.d.ts → components-page/team-creation.d.ts} +2 -3
- package/dist/components-page/team-creation.js +92 -0
- package/dist/components-page/team-creation.js.map +1 -0
- package/dist/components-page/team-invitation.d.mts +8 -0
- package/dist/components-page/team-invitation.d.ts +8 -0
- package/dist/components-page/team-invitation.js +141 -0
- package/dist/components-page/team-invitation.js.map +1 -0
- package/dist/components-page/team-settings.d.mts +8 -0
- package/dist/components-page/team-settings.d.ts +8 -0
- package/dist/components-page/team-settings.js +139 -0
- package/dist/components-page/team-settings.js.map +1 -0
- package/dist/esm/components/credential-sign-in.js +4 -1
- package/dist/esm/components/credential-sign-in.js.map +1 -1
- package/dist/esm/components/elements/sidebar-layout.js +90 -0
- package/dist/esm/components/elements/sidebar-layout.js.map +1 -0
- package/dist/esm/components/elements/user-avatar.js.map +1 -1
- package/dist/esm/components/message-cards/predefined-message-card.js +8 -0
- package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/esm/components/selected-team-switcher.js +39 -7
- package/dist/esm/components/selected-team-switcher.js.map +1 -1
- package/dist/esm/components-page/account-settings.js +114 -32
- package/dist/esm/components-page/account-settings.js.map +1 -1
- package/dist/esm/components-page/auth-page.js +4 -1
- package/dist/esm/components-page/auth-page.js.map +1 -1
- package/dist/esm/components-page/forgot-password.js +52 -5
- package/dist/esm/components-page/forgot-password.js.map +1 -1
- package/dist/esm/components-page/password-reset.js +101 -9
- package/dist/esm/components-page/password-reset.js.map +1 -1
- package/dist/esm/components-page/stack-handler.js +32 -6
- package/dist/esm/components-page/stack-handler.js.map +1 -1
- package/dist/esm/components-page/team-creation.js +68 -0
- package/dist/esm/components-page/team-creation.js.map +1 -0
- package/dist/esm/components-page/team-invitation.js +107 -0
- package/dist/esm/components-page/team-invitation.js.map +1 -0
- package/dist/esm/components-page/team-settings.js +115 -0
- package/dist/esm/components-page/team-settings.js.map +1 -0
- package/dist/esm/generated/global-css.js +1 -1
- package/dist/esm/generated/global-css.js.map +1 -1
- package/dist/esm/lib/auth.js +5 -1
- package/dist/esm/lib/auth.js.map +1 -1
- package/dist/esm/lib/stack-app.js +272 -25
- package/dist/esm/lib/stack-app.js.map +1 -1
- package/dist/generated/global-css.d.mts +1 -1
- package/dist/generated/global-css.d.ts +1 -1
- package/dist/generated/global-css.js +1 -1
- package/dist/generated/global-css.js.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/lib/auth.js +5 -1
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/hooks.d.mts +1 -0
- package/dist/lib/hooks.d.ts +1 -0
- package/dist/lib/stack-app.d.mts +64 -5
- package/dist/lib/stack-app.d.ts +64 -5
- package/dist/lib/stack-app.js +272 -25
- package/dist/lib/stack-app.js.map +1 -1
- package/dist/providers/stack-provider-client.d.mts +1 -0
- package/dist/providers/stack-provider-client.d.ts +1 -0
- package/dist/providers/stack-provider.d.mts +1 -0
- package/dist/providers/stack-provider.d.ts +1 -0
- package/package.json +10 -6
- package/dist/components/forgot-password-form.d.mts +0 -7
- package/dist/components/forgot-password-form.d.ts +0 -7
- package/dist/components/forgot-password-form.js +0 -83
- package/dist/components/forgot-password-form.js.map +0 -1
- package/dist/components/password-reset-form.js +0 -135
- package/dist/components/password-reset-form.js.map +0 -1
- package/dist/esm/components/forgot-password-form.js +0 -59
- package/dist/esm/components/forgot-password-form.js.map +0 -1
- package/dist/esm/components/password-reset-form.js +0 -105
- package/dist/esm/components/password-reset-form.js.map +0 -1
package/dist/lib/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/auth.ts"],"sourcesContent":["import { StackClientInterface } from \"@stackframe/stack-shared\";\nimport { InternalSession } from \"@stackframe/stack-shared/dist/sessions\";\nimport { StackAssertionError, captureError } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { neverResolve } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { constructRedirectUrl } from \"../utils/url\";\nimport { getVerifierAndState, saveVerifierAndState } from \"./cookie\";\n\nexport async function signInWithOAuth(\n iface: StackClientInterface,\n options: {\n provider: string,\n redirectUrl: string,\n errorRedirectUrl: string,\n providerScope?: string,\n }\n) {\n const { codeChallenge, state } = await saveVerifierAndState();\n const location = await iface.getOAuthUrl({\n provider: options.provider,\n redirectUrl: constructRedirectUrl(options.redirectUrl),\n errorRedirectUrl: constructRedirectUrl(options.errorRedirectUrl),\n codeChallenge,\n state,\n type: \"authenticate\",\n providerScope: options.providerScope,\n });\n window.location.assign(location);\n await neverResolve();\n}\n\nexport async function addNewOAuthProviderOrScope(\n iface: StackClientInterface,\n options: {\n provider: string,\n redirectUrl: string,\n errorRedirectUrl: string,\n providerScope?: string,\n },\n session: InternalSession,\n) {\n const { codeChallenge, state } = await saveVerifierAndState();\n const location = await iface.getOAuthUrl({\n provider: options.provider,\n redirectUrl: constructRedirectUrl(options.redirectUrl),\n errorRedirectUrl: constructRedirectUrl(options.errorRedirectUrl),\n afterCallbackRedirectUrl: constructRedirectUrl(window.location.href),\n codeChallenge,\n state,\n type: \"link\",\n session,\n providerScope: options.providerScope,\n });\n window.location.assign(location);\n await neverResolve();\n}\n\n/**\n * Checks if the current URL has the query parameters for an OAuth callback, and if so, removes them.\n *\n * Must be synchronous for the logic in callOAuthCallback to work without race conditions.\n */\nfunction consumeOAuthCallbackQueryParams(expectedState: string): null | URL {\n const requiredParams = [\"code\", \"state\"];\n const originalUrl = new URL(window.location.href);\n for (const param of requiredParams) {\n if (!originalUrl.searchParams.has(param)) {\n captureError(\"consumeOAuthCallbackQueryParams\", new Error(`Missing required query parameter on OAuth callback: ${param}`));\n return null;\n }\n }\n\n if (expectedState !== originalUrl.searchParams.get(\"state\")) {\n // If the state doesn't match, then the callback wasn't meant for us.\n // Maybe the website uses another OAuth library?\n captureError(\"consumeOAuthCallbackQueryParams\", new Error(`Invalid OAuth callback state:
|
|
1
|
+
{"version":3,"sources":["../../src/lib/auth.ts"],"sourcesContent":["import { KnownError, StackClientInterface } from \"@stackframe/stack-shared\";\nimport { InternalSession } from \"@stackframe/stack-shared/dist/sessions\";\nimport { StackAssertionError, captureError } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { neverResolve } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { constructRedirectUrl } from \"../utils/url\";\nimport { getVerifierAndState, saveVerifierAndState } from \"./cookie\";\n\nexport async function signInWithOAuth(\n iface: StackClientInterface,\n options: {\n provider: string,\n redirectUrl: string,\n errorRedirectUrl: string,\n providerScope?: string,\n }\n) {\n const { codeChallenge, state } = await saveVerifierAndState();\n const location = await iface.getOAuthUrl({\n provider: options.provider,\n redirectUrl: constructRedirectUrl(options.redirectUrl),\n errorRedirectUrl: constructRedirectUrl(options.errorRedirectUrl),\n codeChallenge,\n state,\n type: \"authenticate\",\n providerScope: options.providerScope,\n });\n window.location.assign(location);\n await neverResolve();\n}\n\nexport async function addNewOAuthProviderOrScope(\n iface: StackClientInterface,\n options: {\n provider: string,\n redirectUrl: string,\n errorRedirectUrl: string,\n providerScope?: string,\n },\n session: InternalSession,\n) {\n const { codeChallenge, state } = await saveVerifierAndState();\n const location = await iface.getOAuthUrl({\n provider: options.provider,\n redirectUrl: constructRedirectUrl(options.redirectUrl),\n errorRedirectUrl: constructRedirectUrl(options.errorRedirectUrl),\n afterCallbackRedirectUrl: constructRedirectUrl(window.location.href),\n codeChallenge,\n state,\n type: \"link\",\n session,\n providerScope: options.providerScope,\n });\n window.location.assign(location);\n await neverResolve();\n}\n\n/**\n * Checks if the current URL has the query parameters for an OAuth callback, and if so, removes them.\n *\n * Must be synchronous for the logic in callOAuthCallback to work without race conditions.\n */\nfunction consumeOAuthCallbackQueryParams(expectedState: string): null | URL {\n const requiredParams = [\"code\", \"state\"];\n const originalUrl = new URL(window.location.href);\n for (const param of requiredParams) {\n if (!originalUrl.searchParams.has(param)) {\n captureError(\"consumeOAuthCallbackQueryParams\", new Error(`Missing required query parameter on OAuth callback: ${param}`));\n return null;\n }\n }\n\n if (expectedState !== originalUrl.searchParams.get(\"state\")) {\n // If the state doesn't match, then the callback wasn't meant for us.\n // Maybe the website uses another OAuth library?\n captureError(\"consumeOAuthCallbackQueryParams\", new Error(`Invalid OAuth callback state: Are you using another OAuth authentication with the same callback URL as Stack, or did your cookies reset?`));\n return null;\n }\n\n\n const newUrl = new URL(originalUrl);\n for (const param of requiredParams) {\n newUrl.searchParams.delete(param);\n }\n\n // let's get rid of the authorization code in the history as we\n // don't redirect to `redirectUrl` if there's a validation error\n // (as the redirectUrl might be malicious!).\n //\n // We use history.replaceState instead of location.assign(...) to\n // prevent an unnecessary reload\n window.history.replaceState({}, \"\", newUrl.toString());\n\n return originalUrl;\n}\n\nexport async function callOAuthCallback(\n iface: StackClientInterface,\n redirectUrl: string,\n) {\n // note: this part of the function (until the return) needs\n // to be synchronous, to prevent race conditions when\n // callOAuthCallback is called multiple times in parallel\n const { codeVerifier, state } = getVerifierAndState();\n if (!codeVerifier || !state) {\n throw new Error(\"Invalid OAuth callback URL parameters. It seems like the OAuth flow was interrupted, so please try again.\");\n }\n const originalUrl = consumeOAuthCallbackQueryParams(state);\n if (!originalUrl) return null;\n\n // the rest can be asynchronous (we now know that we are the\n // intended recipient of the callback)\n try {\n return await iface.callOAuthCallback({\n oauthParams: originalUrl.searchParams,\n redirectUri: constructRedirectUrl(redirectUrl),\n codeVerifier,\n state,\n });\n } catch (e) {\n if (e instanceof KnownError) {\n throw e;\n }\n throw new StackAssertionError(\"Error signing in during OAuth callback. Please try again.\", { cause: e });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAiD;AAEjD,oBAAkD;AAClD,sBAA6B;AAC7B,iBAAqC;AACrC,oBAA0D;AAE1D,eAAsB,gBACpB,OACA,SAMA;AACA,QAAM,EAAE,eAAe,MAAM,IAAI,UAAM,oCAAqB;AAC5D,QAAM,WAAW,MAAM,MAAM,YAAY;AAAA,IACvC,UAAU,QAAQ;AAAA,IAClB,iBAAa,iCAAqB,QAAQ,WAAW;AAAA,IACrD,sBAAkB,iCAAqB,QAAQ,gBAAgB;AAAA,IAC/D;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,eAAe,QAAQ;AAAA,EACzB,CAAC;AACD,SAAO,SAAS,OAAO,QAAQ;AAC/B,YAAM,8BAAa;AACrB;AAEA,eAAsB,2BACpB,OACA,SAMA,SACA;AACA,QAAM,EAAE,eAAe,MAAM,IAAI,UAAM,oCAAqB;AAC5D,QAAM,WAAW,MAAM,MAAM,YAAY;AAAA,IACvC,UAAU,QAAQ;AAAA,IAClB,iBAAa,iCAAqB,QAAQ,WAAW;AAAA,IACrD,sBAAkB,iCAAqB,QAAQ,gBAAgB;AAAA,IAC/D,8BAA0B,iCAAqB,OAAO,SAAS,IAAI;AAAA,IACnE;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA,eAAe,QAAQ;AAAA,EACzB,CAAC;AACD,SAAO,SAAS,OAAO,QAAQ;AAC/B,YAAM,8BAAa;AACrB;AAOA,SAAS,gCAAgC,eAAmC;AAC1E,QAAM,iBAAiB,CAAC,QAAQ,OAAO;AACvC,QAAM,cAAc,IAAI,IAAI,OAAO,SAAS,IAAI;AAChD,aAAW,SAAS,gBAAgB;AAClC,QAAI,CAAC,YAAY,aAAa,IAAI,KAAK,GAAG;AACxC,sCAAa,mCAAmC,IAAI,MAAM,uDAAuD,KAAK,EAAE,CAAC;AACzH,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,kBAAkB,YAAY,aAAa,IAAI,OAAO,GAAG;AAG3D,oCAAa,mCAAmC,IAAI,MAAM,0IAA0I,CAAC;AACrM,WAAO;AAAA,EACT;AAGA,QAAM,SAAS,IAAI,IAAI,WAAW;AAClC,aAAW,SAAS,gBAAgB;AAClC,WAAO,aAAa,OAAO,KAAK;AAAA,EAClC;AAQA,SAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,OAAO,SAAS,CAAC;AAErD,SAAO;AACT;AAEA,eAAsB,kBACpB,OACA,aACA;AAIA,QAAM,EAAE,cAAc,MAAM,QAAI,mCAAoB;AACpD,MAAI,CAAC,gBAAgB,CAAC,OAAO;AAC3B,UAAM,IAAI,MAAM,2GAA2G;AAAA,EAC7H;AACA,QAAM,cAAc,gCAAgC,KAAK;AACzD,MAAI,CAAC,YAAa,QAAO;AAIzB,MAAI;AACF,WAAO,MAAM,MAAM,kBAAkB;AAAA,MACnC,aAAa,YAAY;AAAA,MACzB,iBAAa,iCAAqB,WAAW;AAAA,MAC7C;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,SAAS,GAAG;AACV,QAAI,aAAa,gCAAY;AAC3B,YAAM;AAAA,IACR;AACA,UAAM,IAAI,kCAAoB,6DAA6D,EAAE,OAAO,EAAE,CAAC;AAAA,EACzG;AACF;","names":[]}
|
package/dist/lib/hooks.d.mts
CHANGED
|
@@ -8,6 +8,7 @@ import '@stackframe/stack-shared/dist/interface/crud/team-permissions';
|
|
|
8
8
|
import '@stackframe/stack-shared/dist/sessions';
|
|
9
9
|
import '@stackframe/stack-shared/dist/utils/json';
|
|
10
10
|
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
11
|
+
import '@stackframe/stack-shared/dist/utils/results';
|
|
11
12
|
|
|
12
13
|
type GetUserOptions = GetUserOptions$1<true> & {
|
|
13
14
|
projectIdMustMatch?: string;
|
package/dist/lib/hooks.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import '@stackframe/stack-shared/dist/interface/crud/team-permissions';
|
|
|
8
8
|
import '@stackframe/stack-shared/dist/sessions';
|
|
9
9
|
import '@stackframe/stack-shared/dist/utils/json';
|
|
10
10
|
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
11
|
+
import '@stackframe/stack-shared/dist/utils/results';
|
|
11
12
|
|
|
12
13
|
type GetUserOptions = GetUserOptions$1<true> & {
|
|
13
14
|
projectIdMustMatch?: string;
|
package/dist/lib/stack-app.d.mts
CHANGED
|
@@ -7,6 +7,7 @@ import { TeamPermissionDefinitionsCrud } from '@stackframe/stack-shared/dist/int
|
|
|
7
7
|
import { InternalSession } from '@stackframe/stack-shared/dist/sessions';
|
|
8
8
|
import { ReadonlyJson } from '@stackframe/stack-shared/dist/utils/json';
|
|
9
9
|
import { ProviderType } from '@stackframe/stack-shared/dist/utils/oauth';
|
|
10
|
+
import { Result } from '@stackframe/stack-shared/dist/utils/results';
|
|
10
11
|
|
|
11
12
|
type RequestLike = {
|
|
12
13
|
headers: {
|
|
@@ -32,6 +33,8 @@ type HandlerUrls = {
|
|
|
32
33
|
oauthCallback: string;
|
|
33
34
|
magicLinkCallback: string;
|
|
34
35
|
accountSettings: string;
|
|
36
|
+
teamInvitation: string;
|
|
37
|
+
teamCreation: string;
|
|
35
38
|
error: string;
|
|
36
39
|
};
|
|
37
40
|
type OAuthScopesOnSignIn = {
|
|
@@ -193,9 +196,13 @@ type BaseUser = {
|
|
|
193
196
|
* Whether the user has a password set.
|
|
194
197
|
*/
|
|
195
198
|
readonly hasPassword: boolean;
|
|
199
|
+
/**
|
|
200
|
+
* @deprecated
|
|
201
|
+
*/
|
|
196
202
|
readonly oauthProviders: readonly {
|
|
197
203
|
id: string;
|
|
198
204
|
}[];
|
|
205
|
+
readonly isMultiFactorRequired: boolean;
|
|
199
206
|
/**
|
|
200
207
|
* A shorthand method to update multiple fields of the user at once.
|
|
201
208
|
*/
|
|
@@ -233,6 +240,9 @@ type UserExtra = {
|
|
|
233
240
|
hasPermission(scope: Team, permissionId: string): Promise<boolean>;
|
|
234
241
|
setSelectedTeam(team: Team | null): Promise<void>;
|
|
235
242
|
createTeam(data: TeamCreateOptions): Promise<Team>;
|
|
243
|
+
leaveTeam(team: Team): Promise<void>;
|
|
244
|
+
getTeamProfile(team: Team): Promise<EditableTeamMemberProfile>;
|
|
245
|
+
useTeamProfile(team: Team): EditableTeamMemberProfile;
|
|
236
246
|
} & AsyncStoreProperty<"team", [id: string], Team | null, false> & AsyncStoreProperty<"teams", [], Team[], true> & AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
237
247
|
recursive?: boolean;
|
|
238
248
|
}], TeamPermission | null, false> & AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
@@ -250,6 +260,7 @@ type UserUpdateOptions = {
|
|
|
250
260
|
displayName?: string;
|
|
251
261
|
clientMetadata?: ReadonlyJson;
|
|
252
262
|
selectedTeamId?: string | null;
|
|
263
|
+
totpMultiFactorSecret?: Uint8Array | null;
|
|
253
264
|
};
|
|
254
265
|
type ServerBaseUser = {
|
|
255
266
|
setPrimaryEmail(email: string, options?: {
|
|
@@ -291,8 +302,15 @@ type ServerUserUpdateOptions = {
|
|
|
291
302
|
serverMetadata?: ReadonlyJson;
|
|
292
303
|
password?: string;
|
|
293
304
|
} & UserUpdateOptions;
|
|
305
|
+
type ServerUserCreateOptions = {
|
|
306
|
+
primaryEmail: string;
|
|
307
|
+
password: string;
|
|
308
|
+
displayName?: string;
|
|
309
|
+
primaryEmailVerified?: boolean;
|
|
310
|
+
};
|
|
294
311
|
type Project = {
|
|
295
312
|
readonly id: string;
|
|
313
|
+
readonly displayName: string;
|
|
296
314
|
readonly config: ProjectConfig;
|
|
297
315
|
};
|
|
298
316
|
type AdminProject = {
|
|
@@ -304,6 +322,7 @@ type AdminProject = {
|
|
|
304
322
|
readonly isProductionMode: boolean;
|
|
305
323
|
readonly config: AdminProjectConfig;
|
|
306
324
|
update(this: AdminProject, update: AdminProjectUpdateOptions): Promise<void>;
|
|
325
|
+
delete(this: AdminProject): Promise<void>;
|
|
307
326
|
getProductionModeErrors(this: AdminProject): Promise<ProductionModeError[]>;
|
|
308
327
|
useProductionModeErrors(this: AdminProject): ProductionModeError[];
|
|
309
328
|
} & Project;
|
|
@@ -320,16 +339,21 @@ type AdminProjectCreateOptions = Omit<AdminProjectUpdateOptions, 'displayName'>
|
|
|
320
339
|
displayName: string;
|
|
321
340
|
};
|
|
322
341
|
type ProjectConfig = {
|
|
342
|
+
readonly signUpEnabled: boolean;
|
|
323
343
|
readonly credentialEnabled: boolean;
|
|
324
344
|
readonly magicLinkEnabled: boolean;
|
|
345
|
+
readonly clientTeamCreationEnabled: boolean;
|
|
325
346
|
readonly oauthProviders: OAuthProviderConfig[];
|
|
326
347
|
};
|
|
327
348
|
type OAuthProviderConfig = {
|
|
328
349
|
readonly id: string;
|
|
329
350
|
};
|
|
330
351
|
type AdminProjectConfig = {
|
|
352
|
+
readonly id: string;
|
|
353
|
+
readonly signUpEnabled: boolean;
|
|
331
354
|
readonly credentialEnabled: boolean;
|
|
332
355
|
readonly magicLinkEnabled: boolean;
|
|
356
|
+
readonly clientTeamCreationEnabled: boolean;
|
|
333
357
|
readonly allowLocalhost: boolean;
|
|
334
358
|
readonly oauthProviders: AdminOAuthProviderConfig[];
|
|
335
359
|
readonly emailConfig?: AdminEmailConfig;
|
|
@@ -337,7 +361,7 @@ type AdminProjectConfig = {
|
|
|
337
361
|
readonly createTeamOnSignUp: boolean;
|
|
338
362
|
readonly teamCreatorDefaultPermissions: AdminTeamPermission[];
|
|
339
363
|
readonly teamMemberDefaultPermissions: AdminTeamPermission[];
|
|
340
|
-
}
|
|
364
|
+
};
|
|
341
365
|
type AdminEmailConfig = ({
|
|
342
366
|
type: "standard";
|
|
343
367
|
senderName: string;
|
|
@@ -370,8 +394,10 @@ type AdminProjectConfigUpdateOptions = {
|
|
|
370
394
|
handlerPath: string;
|
|
371
395
|
}[];
|
|
372
396
|
oauthProviders?: AdminOAuthProviderConfig[];
|
|
397
|
+
signUpEnabled?: boolean;
|
|
373
398
|
credentialEnabled?: boolean;
|
|
374
399
|
magicLinkEnabled?: boolean;
|
|
400
|
+
clientTeamCreationEnabled?: boolean;
|
|
375
401
|
allowLocalhost?: boolean;
|
|
376
402
|
createTeamOnSignUp?: boolean;
|
|
377
403
|
emailConfig?: AdminEmailConfig;
|
|
@@ -416,22 +442,49 @@ type ApiKeyCreateOptions = {
|
|
|
416
442
|
hasSecretServerKey: boolean;
|
|
417
443
|
hasSuperSecretAdminKey: boolean;
|
|
418
444
|
};
|
|
445
|
+
type TeamMemberProfile = {
|
|
446
|
+
displayName: string | null;
|
|
447
|
+
profileImageUrl: string | null;
|
|
448
|
+
};
|
|
449
|
+
type TeamMemberProfileUpdateOptions = {
|
|
450
|
+
displayName?: string;
|
|
451
|
+
profileImageUrl?: string | null;
|
|
452
|
+
};
|
|
453
|
+
type EditableTeamMemberProfile = TeamMemberProfile & {
|
|
454
|
+
update(update: TeamMemberProfileUpdateOptions): Promise<void>;
|
|
455
|
+
};
|
|
456
|
+
type TeamUser = {
|
|
457
|
+
id: string;
|
|
458
|
+
teamProfile: TeamMemberProfile;
|
|
459
|
+
};
|
|
419
460
|
type Team = {
|
|
420
461
|
id: string;
|
|
421
462
|
displayName: string;
|
|
422
463
|
profileImageUrl: string | null;
|
|
464
|
+
inviteUser(options: {
|
|
465
|
+
email: string;
|
|
466
|
+
}): Promise<Result<undefined, KnownErrors["TeamPermissionRequired"]>>;
|
|
467
|
+
listUsers(): Promise<TeamUser[]>;
|
|
468
|
+
useUsers(): TeamUser[];
|
|
423
469
|
};
|
|
424
470
|
type TeamCreateOptions = {
|
|
425
471
|
displayName: string;
|
|
426
472
|
profileImageUrl?: string;
|
|
427
473
|
};
|
|
474
|
+
type ServerTeamMemberProfile = TeamMemberProfile;
|
|
475
|
+
type ServerTeamUser = ServerUser & {
|
|
476
|
+
teamProfile: ServerTeamMemberProfile;
|
|
477
|
+
};
|
|
428
478
|
type ServerTeam = {
|
|
429
479
|
createdAt: Date;
|
|
430
|
-
listUsers(): Promise<
|
|
480
|
+
listUsers(): Promise<ServerTeamUser[]>;
|
|
431
481
|
useUsers(): ServerUser[];
|
|
432
482
|
update(update: ServerTeamUpdateOptions): Promise<void>;
|
|
433
483
|
delete(): Promise<void>;
|
|
434
484
|
addUser(userId: string): Promise<void>;
|
|
485
|
+
inviteUser(options: {
|
|
486
|
+
email: string;
|
|
487
|
+
}): Promise<Result<undefined, KnownErrors["TeamPermissionRequired"]>>;
|
|
435
488
|
removeUser(userId: string): Promise<void>;
|
|
436
489
|
} & Team;
|
|
437
490
|
type ServerTeamCreateOptions = TeamCreateOptions;
|
|
@@ -487,7 +540,7 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
487
540
|
signInWithCredential(options: {
|
|
488
541
|
email: string;
|
|
489
542
|
password: string;
|
|
490
|
-
}): Promise<KnownErrors["EmailPasswordMismatch"] | void>;
|
|
543
|
+
}): Promise<KnownErrors["EmailPasswordMismatch"] | KnownErrors["InvalidTotpCode"] | void>;
|
|
491
544
|
signUpWithCredential(options: {
|
|
492
545
|
email: string;
|
|
493
546
|
password: string;
|
|
@@ -500,8 +553,13 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
500
553
|
password: string;
|
|
501
554
|
}): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
502
555
|
verifyPasswordResetCode(code: string): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
556
|
+
verifyTeamInvitationCode(code: string): Promise<Result<undefined, KnownErrors["VerificationCodeError"]>>;
|
|
557
|
+
acceptTeamInvitation(code: string): Promise<Result<undefined, KnownErrors["VerificationCodeError"]>>;
|
|
558
|
+
getTeamInvitationDetails(code: string): Promise<Result<{
|
|
559
|
+
teamDisplayName: string;
|
|
560
|
+
}, KnownErrors["VerificationCodeError"]>>;
|
|
503
561
|
verifyEmail(code: string): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
504
|
-
signInWithMagicLink(code: string): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
562
|
+
signInWithMagicLink(code: string): Promise<KnownErrors["VerificationCodeError"] | KnownErrors["InvalidTotpCode"] | void>;
|
|
505
563
|
redirectToOAuthCallback(): Promise<void>;
|
|
506
564
|
useUser(options: GetUserOptions<HasTokenStore> & {
|
|
507
565
|
or: 'redirect';
|
|
@@ -535,6 +593,7 @@ type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
535
593
|
* @deprecated use `getUser()` instead
|
|
536
594
|
*/
|
|
537
595
|
getServerUser(): Promise<ProjectCurrentServerUser<ProjectId> | null>;
|
|
596
|
+
createUser(options: ServerUserCreateOptions): Promise<ServerUser>;
|
|
538
597
|
useUser(options: GetUserOptions<HasTokenStore> & {
|
|
539
598
|
or: 'redirect';
|
|
540
599
|
}): ProjectCurrentServerUser<ProjectId>;
|
|
@@ -587,4 +646,4 @@ type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultip
|
|
|
587
646
|
[key in `use${Capitalize<Name>}`]: (...args: Args) => Value;
|
|
588
647
|
};
|
|
589
648
|
|
|
590
|
-
export { type AdminDomainConfig, type AdminEmailConfig, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectUpdateOptions, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type ApiKey, type ApiKeyBase, type ApiKeyBaseCrudRead, type ApiKeyCreateOptions, type ApiKeyFirstView, type Connection, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type GetUserOptions, type HandlerUrls, type OAuthConnection, type OAuthProviderConfig, type OAuthScopesOnSignIn, type Project, type ProjectConfig, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamUpdateOptions, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamPermission, type TokenStoreInit, type User, serverTeamPermissionDefinitionCreateOptionsToCrud, serverTeamPermissionDefinitionUpdateOptionsToCrud, stackAppInternalsSymbol };
|
|
649
|
+
export { type AdminDomainConfig, type AdminEmailConfig, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectUpdateOptions, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type ApiKey, type ApiKeyBase, type ApiKeyBaseCrudRead, type ApiKeyCreateOptions, type ApiKeyFirstView, type Connection, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, type GetUserOptions, type HandlerUrls, type OAuthConnection, type OAuthProviderConfig, type OAuthScopesOnSignIn, type Project, type ProjectConfig, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamMemberProfile, type TeamPermission, type TeamUser, type TokenStoreInit, type User, serverTeamPermissionDefinitionCreateOptionsToCrud, serverTeamPermissionDefinitionUpdateOptionsToCrud, stackAppInternalsSymbol };
|
package/dist/lib/stack-app.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { TeamPermissionDefinitionsCrud } from '@stackframe/stack-shared/dist/int
|
|
|
7
7
|
import { InternalSession } from '@stackframe/stack-shared/dist/sessions';
|
|
8
8
|
import { ReadonlyJson } from '@stackframe/stack-shared/dist/utils/json';
|
|
9
9
|
import { ProviderType } from '@stackframe/stack-shared/dist/utils/oauth';
|
|
10
|
+
import { Result } from '@stackframe/stack-shared/dist/utils/results';
|
|
10
11
|
|
|
11
12
|
type RequestLike = {
|
|
12
13
|
headers: {
|
|
@@ -32,6 +33,8 @@ type HandlerUrls = {
|
|
|
32
33
|
oauthCallback: string;
|
|
33
34
|
magicLinkCallback: string;
|
|
34
35
|
accountSettings: string;
|
|
36
|
+
teamInvitation: string;
|
|
37
|
+
teamCreation: string;
|
|
35
38
|
error: string;
|
|
36
39
|
};
|
|
37
40
|
type OAuthScopesOnSignIn = {
|
|
@@ -193,9 +196,13 @@ type BaseUser = {
|
|
|
193
196
|
* Whether the user has a password set.
|
|
194
197
|
*/
|
|
195
198
|
readonly hasPassword: boolean;
|
|
199
|
+
/**
|
|
200
|
+
* @deprecated
|
|
201
|
+
*/
|
|
196
202
|
readonly oauthProviders: readonly {
|
|
197
203
|
id: string;
|
|
198
204
|
}[];
|
|
205
|
+
readonly isMultiFactorRequired: boolean;
|
|
199
206
|
/**
|
|
200
207
|
* A shorthand method to update multiple fields of the user at once.
|
|
201
208
|
*/
|
|
@@ -233,6 +240,9 @@ type UserExtra = {
|
|
|
233
240
|
hasPermission(scope: Team, permissionId: string): Promise<boolean>;
|
|
234
241
|
setSelectedTeam(team: Team | null): Promise<void>;
|
|
235
242
|
createTeam(data: TeamCreateOptions): Promise<Team>;
|
|
243
|
+
leaveTeam(team: Team): Promise<void>;
|
|
244
|
+
getTeamProfile(team: Team): Promise<EditableTeamMemberProfile>;
|
|
245
|
+
useTeamProfile(team: Team): EditableTeamMemberProfile;
|
|
236
246
|
} & AsyncStoreProperty<"team", [id: string], Team | null, false> & AsyncStoreProperty<"teams", [], Team[], true> & AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
237
247
|
recursive?: boolean;
|
|
238
248
|
}], TeamPermission | null, false> & AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
@@ -250,6 +260,7 @@ type UserUpdateOptions = {
|
|
|
250
260
|
displayName?: string;
|
|
251
261
|
clientMetadata?: ReadonlyJson;
|
|
252
262
|
selectedTeamId?: string | null;
|
|
263
|
+
totpMultiFactorSecret?: Uint8Array | null;
|
|
253
264
|
};
|
|
254
265
|
type ServerBaseUser = {
|
|
255
266
|
setPrimaryEmail(email: string, options?: {
|
|
@@ -291,8 +302,15 @@ type ServerUserUpdateOptions = {
|
|
|
291
302
|
serverMetadata?: ReadonlyJson;
|
|
292
303
|
password?: string;
|
|
293
304
|
} & UserUpdateOptions;
|
|
305
|
+
type ServerUserCreateOptions = {
|
|
306
|
+
primaryEmail: string;
|
|
307
|
+
password: string;
|
|
308
|
+
displayName?: string;
|
|
309
|
+
primaryEmailVerified?: boolean;
|
|
310
|
+
};
|
|
294
311
|
type Project = {
|
|
295
312
|
readonly id: string;
|
|
313
|
+
readonly displayName: string;
|
|
296
314
|
readonly config: ProjectConfig;
|
|
297
315
|
};
|
|
298
316
|
type AdminProject = {
|
|
@@ -304,6 +322,7 @@ type AdminProject = {
|
|
|
304
322
|
readonly isProductionMode: boolean;
|
|
305
323
|
readonly config: AdminProjectConfig;
|
|
306
324
|
update(this: AdminProject, update: AdminProjectUpdateOptions): Promise<void>;
|
|
325
|
+
delete(this: AdminProject): Promise<void>;
|
|
307
326
|
getProductionModeErrors(this: AdminProject): Promise<ProductionModeError[]>;
|
|
308
327
|
useProductionModeErrors(this: AdminProject): ProductionModeError[];
|
|
309
328
|
} & Project;
|
|
@@ -320,16 +339,21 @@ type AdminProjectCreateOptions = Omit<AdminProjectUpdateOptions, 'displayName'>
|
|
|
320
339
|
displayName: string;
|
|
321
340
|
};
|
|
322
341
|
type ProjectConfig = {
|
|
342
|
+
readonly signUpEnabled: boolean;
|
|
323
343
|
readonly credentialEnabled: boolean;
|
|
324
344
|
readonly magicLinkEnabled: boolean;
|
|
345
|
+
readonly clientTeamCreationEnabled: boolean;
|
|
325
346
|
readonly oauthProviders: OAuthProviderConfig[];
|
|
326
347
|
};
|
|
327
348
|
type OAuthProviderConfig = {
|
|
328
349
|
readonly id: string;
|
|
329
350
|
};
|
|
330
351
|
type AdminProjectConfig = {
|
|
352
|
+
readonly id: string;
|
|
353
|
+
readonly signUpEnabled: boolean;
|
|
331
354
|
readonly credentialEnabled: boolean;
|
|
332
355
|
readonly magicLinkEnabled: boolean;
|
|
356
|
+
readonly clientTeamCreationEnabled: boolean;
|
|
333
357
|
readonly allowLocalhost: boolean;
|
|
334
358
|
readonly oauthProviders: AdminOAuthProviderConfig[];
|
|
335
359
|
readonly emailConfig?: AdminEmailConfig;
|
|
@@ -337,7 +361,7 @@ type AdminProjectConfig = {
|
|
|
337
361
|
readonly createTeamOnSignUp: boolean;
|
|
338
362
|
readonly teamCreatorDefaultPermissions: AdminTeamPermission[];
|
|
339
363
|
readonly teamMemberDefaultPermissions: AdminTeamPermission[];
|
|
340
|
-
}
|
|
364
|
+
};
|
|
341
365
|
type AdminEmailConfig = ({
|
|
342
366
|
type: "standard";
|
|
343
367
|
senderName: string;
|
|
@@ -370,8 +394,10 @@ type AdminProjectConfigUpdateOptions = {
|
|
|
370
394
|
handlerPath: string;
|
|
371
395
|
}[];
|
|
372
396
|
oauthProviders?: AdminOAuthProviderConfig[];
|
|
397
|
+
signUpEnabled?: boolean;
|
|
373
398
|
credentialEnabled?: boolean;
|
|
374
399
|
magicLinkEnabled?: boolean;
|
|
400
|
+
clientTeamCreationEnabled?: boolean;
|
|
375
401
|
allowLocalhost?: boolean;
|
|
376
402
|
createTeamOnSignUp?: boolean;
|
|
377
403
|
emailConfig?: AdminEmailConfig;
|
|
@@ -416,22 +442,49 @@ type ApiKeyCreateOptions = {
|
|
|
416
442
|
hasSecretServerKey: boolean;
|
|
417
443
|
hasSuperSecretAdminKey: boolean;
|
|
418
444
|
};
|
|
445
|
+
type TeamMemberProfile = {
|
|
446
|
+
displayName: string | null;
|
|
447
|
+
profileImageUrl: string | null;
|
|
448
|
+
};
|
|
449
|
+
type TeamMemberProfileUpdateOptions = {
|
|
450
|
+
displayName?: string;
|
|
451
|
+
profileImageUrl?: string | null;
|
|
452
|
+
};
|
|
453
|
+
type EditableTeamMemberProfile = TeamMemberProfile & {
|
|
454
|
+
update(update: TeamMemberProfileUpdateOptions): Promise<void>;
|
|
455
|
+
};
|
|
456
|
+
type TeamUser = {
|
|
457
|
+
id: string;
|
|
458
|
+
teamProfile: TeamMemberProfile;
|
|
459
|
+
};
|
|
419
460
|
type Team = {
|
|
420
461
|
id: string;
|
|
421
462
|
displayName: string;
|
|
422
463
|
profileImageUrl: string | null;
|
|
464
|
+
inviteUser(options: {
|
|
465
|
+
email: string;
|
|
466
|
+
}): Promise<Result<undefined, KnownErrors["TeamPermissionRequired"]>>;
|
|
467
|
+
listUsers(): Promise<TeamUser[]>;
|
|
468
|
+
useUsers(): TeamUser[];
|
|
423
469
|
};
|
|
424
470
|
type TeamCreateOptions = {
|
|
425
471
|
displayName: string;
|
|
426
472
|
profileImageUrl?: string;
|
|
427
473
|
};
|
|
474
|
+
type ServerTeamMemberProfile = TeamMemberProfile;
|
|
475
|
+
type ServerTeamUser = ServerUser & {
|
|
476
|
+
teamProfile: ServerTeamMemberProfile;
|
|
477
|
+
};
|
|
428
478
|
type ServerTeam = {
|
|
429
479
|
createdAt: Date;
|
|
430
|
-
listUsers(): Promise<
|
|
480
|
+
listUsers(): Promise<ServerTeamUser[]>;
|
|
431
481
|
useUsers(): ServerUser[];
|
|
432
482
|
update(update: ServerTeamUpdateOptions): Promise<void>;
|
|
433
483
|
delete(): Promise<void>;
|
|
434
484
|
addUser(userId: string): Promise<void>;
|
|
485
|
+
inviteUser(options: {
|
|
486
|
+
email: string;
|
|
487
|
+
}): Promise<Result<undefined, KnownErrors["TeamPermissionRequired"]>>;
|
|
435
488
|
removeUser(userId: string): Promise<void>;
|
|
436
489
|
} & Team;
|
|
437
490
|
type ServerTeamCreateOptions = TeamCreateOptions;
|
|
@@ -487,7 +540,7 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
487
540
|
signInWithCredential(options: {
|
|
488
541
|
email: string;
|
|
489
542
|
password: string;
|
|
490
|
-
}): Promise<KnownErrors["EmailPasswordMismatch"] | void>;
|
|
543
|
+
}): Promise<KnownErrors["EmailPasswordMismatch"] | KnownErrors["InvalidTotpCode"] | void>;
|
|
491
544
|
signUpWithCredential(options: {
|
|
492
545
|
email: string;
|
|
493
546
|
password: string;
|
|
@@ -500,8 +553,13 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
500
553
|
password: string;
|
|
501
554
|
}): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
502
555
|
verifyPasswordResetCode(code: string): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
556
|
+
verifyTeamInvitationCode(code: string): Promise<Result<undefined, KnownErrors["VerificationCodeError"]>>;
|
|
557
|
+
acceptTeamInvitation(code: string): Promise<Result<undefined, KnownErrors["VerificationCodeError"]>>;
|
|
558
|
+
getTeamInvitationDetails(code: string): Promise<Result<{
|
|
559
|
+
teamDisplayName: string;
|
|
560
|
+
}, KnownErrors["VerificationCodeError"]>>;
|
|
503
561
|
verifyEmail(code: string): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
504
|
-
signInWithMagicLink(code: string): Promise<KnownErrors["VerificationCodeError"] | void>;
|
|
562
|
+
signInWithMagicLink(code: string): Promise<KnownErrors["VerificationCodeError"] | KnownErrors["InvalidTotpCode"] | void>;
|
|
505
563
|
redirectToOAuthCallback(): Promise<void>;
|
|
506
564
|
useUser(options: GetUserOptions<HasTokenStore> & {
|
|
507
565
|
or: 'redirect';
|
|
@@ -535,6 +593,7 @@ type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
535
593
|
* @deprecated use `getUser()` instead
|
|
536
594
|
*/
|
|
537
595
|
getServerUser(): Promise<ProjectCurrentServerUser<ProjectId> | null>;
|
|
596
|
+
createUser(options: ServerUserCreateOptions): Promise<ServerUser>;
|
|
538
597
|
useUser(options: GetUserOptions<HasTokenStore> & {
|
|
539
598
|
or: 'redirect';
|
|
540
599
|
}): ProjectCurrentServerUser<ProjectId>;
|
|
@@ -587,4 +646,4 @@ type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultip
|
|
|
587
646
|
[key in `use${Capitalize<Name>}`]: (...args: Args) => Value;
|
|
588
647
|
};
|
|
589
648
|
|
|
590
|
-
export { type AdminDomainConfig, type AdminEmailConfig, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectUpdateOptions, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type ApiKey, type ApiKeyBase, type ApiKeyBaseCrudRead, type ApiKeyCreateOptions, type ApiKeyFirstView, type Connection, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type GetUserOptions, type HandlerUrls, type OAuthConnection, type OAuthProviderConfig, type OAuthScopesOnSignIn, type Project, type ProjectConfig, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamUpdateOptions, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamPermission, type TokenStoreInit, type User, serverTeamPermissionDefinitionCreateOptionsToCrud, serverTeamPermissionDefinitionUpdateOptionsToCrud, stackAppInternalsSymbol };
|
|
649
|
+
export { type AdminDomainConfig, type AdminEmailConfig, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectUpdateOptions, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type ApiKey, type ApiKeyBase, type ApiKeyBaseCrudRead, type ApiKeyCreateOptions, type ApiKeyFirstView, type Connection, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, type GetUserOptions, type HandlerUrls, type OAuthConnection, type OAuthProviderConfig, type OAuthScopesOnSignIn, type Project, type ProjectConfig, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamMemberProfile, type TeamPermission, type TeamUser, type TokenStoreInit, type User, serverTeamPermissionDefinitionCreateOptionsToCrud, serverTeamPermissionDefinitionUpdateOptionsToCrud, stackAppInternalsSymbol };
|