@stackframe/stack 2.4.0 → 2.4.1
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/dist/components/card-frame.js +1 -0
- package/dist/components/card-frame.js.map +1 -0
- package/dist/components/credential-sign-in.js +1 -0
- package/dist/components/credential-sign-in.js.map +1 -0
- package/dist/components/credential-sign-up.js +1 -0
- package/dist/components/credential-sign-up.js.map +1 -0
- package/dist/components/forgot-password.js +1 -0
- package/dist/components/forgot-password.js.map +1 -0
- package/dist/components/form-warning.js +1 -0
- package/dist/components/form-warning.js.map +1 -0
- package/dist/components/magic-link-sign-in.js +1 -0
- package/dist/components/magic-link-sign-in.js.map +1 -0
- package/dist/components/message-card.js +1 -0
- package/dist/components/message-card.js.map +1 -0
- package/dist/components/oauth-button.js +1 -0
- package/dist/components/oauth-button.js.map +1 -0
- package/dist/components/oauth-group.js +1 -0
- package/dist/components/oauth-group.js.map +1 -0
- package/dist/components/password-field.js +1 -0
- package/dist/components/password-field.js.map +1 -0
- package/dist/components/password-reset-inner.js +1 -0
- package/dist/components/password-reset-inner.js.map +1 -0
- package/dist/components/redirect-message-card.js +9 -14
- package/dist/components/redirect-message-card.js.map +1 -0
- package/dist/components/separator-with-text.js +1 -0
- package/dist/components/separator-with-text.js.map +1 -0
- package/dist/components/user-avatar.d.mts +1 -0
- package/dist/components/user-avatar.d.ts +1 -0
- package/dist/components/user-avatar.js +1 -0
- package/dist/components/user-avatar.js.map +1 -0
- package/dist/components/user-button.js +1 -0
- package/dist/components/user-button.js.map +1 -0
- package/dist/components-core/avatar.js +1 -0
- package/dist/components-core/avatar.js.map +1 -0
- package/dist/components-core/button.js +1 -0
- package/dist/components-core/button.js.map +1 -0
- package/dist/components-core/card.js +1 -0
- package/dist/components-core/card.js.map +1 -0
- package/dist/components-core/collapsible.js +1 -0
- package/dist/components-core/collapsible.js.map +1 -0
- package/dist/components-core/container.js +1 -0
- package/dist/components-core/container.js.map +1 -0
- package/dist/components-core/dropdown.js +1 -0
- package/dist/components-core/dropdown.js.map +1 -0
- package/dist/components-core/index.d.mts +4 -4
- package/dist/components-core/index.d.ts +4 -4
- package/dist/components-core/index.js +1 -0
- package/dist/components-core/index.js.map +1 -0
- package/dist/components-core/input.js +1 -0
- package/dist/components-core/input.js.map +1 -0
- package/dist/components-core/label.js +1 -0
- package/dist/components-core/label.js.map +1 -0
- package/dist/components-core/link.js +1 -0
- package/dist/components-core/link.js.map +1 -0
- package/dist/components-core/loading-indicator.js +1 -0
- package/dist/components-core/loading-indicator.js.map +1 -0
- package/dist/components-core/popover.js +1 -0
- package/dist/components-core/popover.js.map +1 -0
- package/dist/components-core/separator.js +1 -0
- package/dist/components-core/separator.js.map +1 -0
- package/dist/components-core/skeleton.js +1 -0
- package/dist/components-core/skeleton.js.map +1 -0
- package/dist/components-core/tabs.js +4 -2
- package/dist/components-core/tabs.js.map +1 -0
- package/dist/components-core/text.js +1 -0
- package/dist/components-core/text.js.map +1 -0
- package/dist/components-core-joy/button.js +1 -0
- package/dist/components-core-joy/button.js.map +1 -0
- package/dist/components-core-joy/input.js +1 -0
- package/dist/components-core-joy/input.js.map +1 -0
- package/dist/components-core-joy/separator.js +1 -0
- package/dist/components-core-joy/separator.js.map +1 -0
- package/dist/components-core-joy/tabs.js +1 -0
- package/dist/components-core-joy/tabs.js.map +1 -0
- package/dist/components-core-joy/text.js +1 -0
- package/dist/components-core-joy/text.js.map +1 -0
- package/dist/components-page/account-settings.js +1 -0
- package/dist/components-page/account-settings.js.map +1 -0
- package/dist/components-page/auth-page.js +1 -0
- package/dist/components-page/auth-page.js.map +1 -0
- package/dist/components-page/email-verification.js +1 -0
- package/dist/components-page/email-verification.js.map +1 -0
- package/dist/components-page/forgot-password.js +1 -0
- package/dist/components-page/forgot-password.js.map +1 -0
- package/dist/components-page/magic-link-callback.js +3 -2
- package/dist/components-page/magic-link-callback.js.map +1 -0
- package/dist/components-page/oauth-callback.js +1 -0
- package/dist/components-page/oauth-callback.js.map +1 -0
- package/dist/components-page/password-reset.js +1 -0
- package/dist/components-page/password-reset.js.map +1 -0
- package/dist/components-page/sign-in.js +1 -0
- package/dist/components-page/sign-in.js.map +1 -0
- package/dist/components-page/sign-out.js +1 -0
- package/dist/components-page/sign-out.js.map +1 -0
- package/dist/components-page/sign-up.js +1 -0
- package/dist/components-page/sign-up.js.map +1 -0
- 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 +1 -0
- package/dist/components-page/stack-handler.js.map +1 -0
- package/dist/esm/components/card-frame.js +1 -0
- package/dist/esm/components/card-frame.js.map +1 -0
- package/dist/esm/components/credential-sign-in.js +1 -0
- package/dist/esm/components/credential-sign-in.js.map +1 -0
- package/dist/esm/components/credential-sign-up.js +1 -0
- package/dist/esm/components/credential-sign-up.js.map +1 -0
- package/dist/esm/components/forgot-password.js +1 -0
- package/dist/esm/components/forgot-password.js.map +1 -0
- package/dist/esm/components/form-warning.js +1 -0
- package/dist/esm/components/form-warning.js.map +1 -0
- package/dist/esm/components/magic-link-sign-in.js +1 -0
- package/dist/esm/components/magic-link-sign-in.js.map +1 -0
- package/dist/esm/components/message-card.js +1 -0
- package/dist/esm/components/message-card.js.map +1 -0
- package/dist/esm/components/oauth-button.js +1 -0
- package/dist/esm/components/oauth-button.js.map +1 -0
- package/dist/esm/components/oauth-group.js +1 -0
- package/dist/esm/components/oauth-group.js.map +1 -0
- package/dist/esm/components/password-field.js +1 -0
- package/dist/esm/components/password-field.js.map +1 -0
- package/dist/esm/components/password-reset-inner.js +1 -0
- package/dist/esm/components/password-reset-inner.js.map +1 -0
- package/dist/esm/components/redirect-message-card.js +9 -14
- package/dist/esm/components/redirect-message-card.js.map +1 -0
- package/dist/esm/components/separator-with-text.js +1 -0
- package/dist/esm/components/separator-with-text.js.map +1 -0
- package/dist/esm/components/user-avatar.js +1 -0
- package/dist/esm/components/user-avatar.js.map +1 -0
- package/dist/esm/components/user-button.js +1 -0
- package/dist/esm/components/user-button.js.map +1 -0
- package/dist/esm/components-core/avatar.js +1 -0
- package/dist/esm/components-core/avatar.js.map +1 -0
- package/dist/esm/components-core/button.js +1 -0
- package/dist/esm/components-core/button.js.map +1 -0
- package/dist/esm/components-core/card.js +1 -0
- package/dist/esm/components-core/card.js.map +1 -0
- package/dist/esm/components-core/collapsible.js +1 -0
- package/dist/esm/components-core/collapsible.js.map +1 -0
- package/dist/esm/components-core/container.js +1 -0
- package/dist/esm/components-core/container.js.map +1 -0
- package/dist/esm/components-core/dropdown.js +1 -0
- package/dist/esm/components-core/dropdown.js.map +1 -0
- package/dist/esm/components-core/index.js +1 -0
- package/dist/esm/components-core/index.js.map +1 -0
- package/dist/esm/components-core/input.js +1 -0
- package/dist/esm/components-core/input.js.map +1 -0
- package/dist/esm/components-core/label.js +1 -0
- package/dist/esm/components-core/label.js.map +1 -0
- package/dist/esm/components-core/link.js +1 -0
- package/dist/esm/components-core/link.js.map +1 -0
- package/dist/esm/components-core/loading-indicator.js +1 -0
- package/dist/esm/components-core/loading-indicator.js.map +1 -0
- package/dist/esm/components-core/popover.js +1 -0
- package/dist/esm/components-core/popover.js.map +1 -0
- package/dist/esm/components-core/separator.js +1 -0
- package/dist/esm/components-core/separator.js.map +1 -0
- package/dist/esm/components-core/skeleton.js +1 -0
- package/dist/esm/components-core/skeleton.js.map +1 -0
- package/dist/esm/components-core/tabs.js +4 -2
- package/dist/esm/components-core/tabs.js.map +1 -0
- package/dist/esm/components-core/text.js +1 -0
- package/dist/esm/components-core/text.js.map +1 -0
- package/dist/esm/components-core-joy/button.js +1 -0
- package/dist/esm/components-core-joy/button.js.map +1 -0
- package/dist/esm/components-core-joy/input.js +1 -0
- package/dist/esm/components-core-joy/input.js.map +1 -0
- package/dist/esm/components-core-joy/separator.js +1 -0
- package/dist/esm/components-core-joy/separator.js.map +1 -0
- package/dist/esm/components-core-joy/tabs.js +1 -0
- package/dist/esm/components-core-joy/tabs.js.map +1 -0
- package/dist/esm/components-core-joy/text.js +1 -0
- package/dist/esm/components-core-joy/text.js.map +1 -0
- package/dist/esm/components-page/account-settings.js +1 -0
- package/dist/esm/components-page/account-settings.js.map +1 -0
- package/dist/esm/components-page/auth-page.js +1 -0
- package/dist/esm/components-page/auth-page.js.map +1 -0
- package/dist/esm/components-page/email-verification.js +1 -0
- package/dist/esm/components-page/email-verification.js.map +1 -0
- package/dist/esm/components-page/forgot-password.js +1 -0
- package/dist/esm/components-page/forgot-password.js.map +1 -0
- package/dist/esm/components-page/magic-link-callback.js +3 -2
- package/dist/esm/components-page/magic-link-callback.js.map +1 -0
- package/dist/esm/components-page/oauth-callback.js +1 -0
- package/dist/esm/components-page/oauth-callback.js.map +1 -0
- package/dist/esm/components-page/password-reset.js +1 -0
- package/dist/esm/components-page/password-reset.js.map +1 -0
- package/dist/esm/components-page/sign-in.js +1 -0
- package/dist/esm/components-page/sign-in.js.map +1 -0
- package/dist/esm/components-page/sign-out.js +1 -0
- package/dist/esm/components-page/sign-out.js.map +1 -0
- package/dist/esm/components-page/sign-up.js +1 -0
- package/dist/esm/components-page/sign-up.js.map +1 -0
- package/dist/esm/components-page/stack-handler.js +1 -0
- package/dist/esm/components-page/stack-handler.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/joy.js +1 -0
- package/dist/esm/joy.js.map +1 -0
- package/dist/esm/lib/auth.js +1 -0
- package/dist/esm/lib/auth.js.map +1 -0
- package/dist/esm/lib/cookie.js +2 -1
- package/dist/esm/lib/cookie.js.map +1 -0
- package/dist/esm/lib/hooks.js +1 -0
- package/dist/esm/lib/hooks.js.map +1 -0
- package/dist/esm/lib/stack-app.js +287 -5
- package/dist/esm/lib/stack-app.js.map +1 -0
- package/dist/esm/providers/component-provider.js +1 -0
- package/dist/esm/providers/component-provider.js.map +1 -0
- package/dist/esm/providers/design-provider.js +1 -0
- package/dist/esm/providers/design-provider.js.map +1 -0
- package/dist/esm/providers/joy-provider.js +1 -0
- package/dist/esm/providers/joy-provider.js.map +1 -0
- package/dist/esm/providers/stack-provider-client.js +1 -0
- package/dist/esm/providers/stack-provider-client.js.map +1 -0
- package/dist/esm/providers/stack-provider.js +1 -0
- package/dist/esm/providers/stack-provider.js.map +1 -0
- package/dist/esm/providers/styled-components-registry.js +1 -0
- package/dist/esm/providers/styled-components-registry.js.map +1 -0
- package/dist/esm/providers/theme-provider.js +1 -0
- package/dist/esm/providers/theme-provider.js.map +1 -0
- package/dist/esm/utils/browser-script.js +1 -0
- package/dist/esm/utils/browser-script.js.map +1 -0
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/email.js +1 -0
- package/dist/esm/utils/email.js.map +1 -0
- package/dist/esm/utils/next.js +1 -0
- package/dist/esm/utils/next.js.map +1 -0
- package/dist/esm/utils/url.js +1 -0
- package/dist/esm/utils/url.js.map +1 -0
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/joy.js +1 -0
- package/dist/joy.js.map +1 -0
- package/dist/lib/auth.js +1 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/cookie.js +5 -4
- package/dist/lib/cookie.js.map +1 -0
- package/dist/lib/hooks.d.mts +1 -0
- package/dist/lib/hooks.d.ts +1 -0
- package/dist/lib/hooks.js +1 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/stack-app.d.mts +78 -22
- package/dist/lib/stack-app.d.ts +78 -22
- package/dist/lib/stack-app.js +287 -5
- package/dist/lib/stack-app.js.map +1 -0
- package/dist/providers/component-provider.d.mts +6 -6
- package/dist/providers/component-provider.d.ts +6 -6
- package/dist/providers/component-provider.js +1 -0
- package/dist/providers/component-provider.js.map +1 -0
- package/dist/providers/design-provider.js +1 -0
- package/dist/providers/design-provider.js.map +1 -0
- package/dist/providers/joy-provider.js +1 -0
- package/dist/providers/joy-provider.js.map +1 -0
- 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-client.js +1 -0
- package/dist/providers/stack-provider-client.js.map +1 -0
- package/dist/providers/stack-provider.d.mts +1 -0
- package/dist/providers/stack-provider.d.ts +1 -0
- package/dist/providers/stack-provider.js +1 -0
- package/dist/providers/stack-provider.js.map +1 -0
- package/dist/providers/styled-components-registry.js +1 -0
- package/dist/providers/styled-components-registry.js.map +1 -0
- package/dist/providers/theme-provider.js +1 -0
- package/dist/providers/theme-provider.js.map +1 -0
- package/dist/utils/browser-script.js +1 -0
- package/dist/utils/browser-script.js.map +1 -0
- package/dist/utils/constants.js +1 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/email.js +1 -0
- package/dist/utils/email.js.map +1 -0
- package/dist/utils/next.js +1 -0
- package/dist/utils/next.js.map +1 -0
- package/dist/utils/url.js +1 -0
- package/dist/utils/url.js.map +1 -0
- package/package.json +3 -3
package/dist/lib/stack-app.d.mts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ServerUserJson,
|
|
2
|
-
import { ReadonlyTokenStore, UserJson,
|
|
1
|
+
import { ServerUserJson, OAuthProviderConfigJson, KnownErrors } from '@stackframe/stack-shared';
|
|
2
|
+
import { ReadonlyTokenStore, UserJson, UserUpdateJson, ProjectJson, ProductionModeError, TeamJson, EmailConfigJson, DomainConfigJson, ClientProjectJson } from '@stackframe/stack-shared/dist/interface/clientInterface';
|
|
3
3
|
import { ReadonlyJson } from '@stackframe/stack-shared/dist/utils/json';
|
|
4
4
|
import { ProjectUpdateOptions, ApiKeySetCreateOptions } from '@stackframe/stack-shared/dist/interface/adminInterface';
|
|
5
|
+
import { ServerUserUpdateJson, ServerTeamCustomizableJson, ServerPermissionDefinitionCustomizableJson, ServerPermissionDefinitionJson } from '@stackframe/stack-shared/dist/interface/serverInterface';
|
|
5
6
|
|
|
6
7
|
type TokenStoreOptions<HasTokenStore extends boolean = boolean> = HasTokenStore extends true ? "cookie" | "nextjs-cookie" | "memory" : HasTokenStore extends false ? null : TokenStoreOptions<true> | TokenStoreOptions<false>;
|
|
7
8
|
type HandlerUrls = {
|
|
@@ -42,7 +43,7 @@ type StackClientAppJson<HasTokenStore extends boolean, ProjectId extends string>
|
|
|
42
43
|
declare const stackAppInternalsSymbol: unique symbol;
|
|
43
44
|
type Auth<T, C> = {
|
|
44
45
|
readonly tokenStore: ReadonlyTokenStore;
|
|
45
|
-
update(this: T, user:
|
|
46
|
+
update(this: T, user: C): Promise<void>;
|
|
46
47
|
signOut(this: T): Promise<void>;
|
|
47
48
|
sendVerificationEmail(this: T): Promise<KnownErrors["EmailAlreadyVerified"] | undefined>;
|
|
48
49
|
updatePassword(this: T, options: {
|
|
@@ -56,7 +57,7 @@ type InternalAuth<T> = {
|
|
|
56
57
|
useOwnedProjects(this: T): Project[];
|
|
57
58
|
onOwnedProjectsChange(this: T, callback: (projects: Project[]) => void): void;
|
|
58
59
|
};
|
|
59
|
-
type User = {
|
|
60
|
+
type User = ({
|
|
60
61
|
readonly projectId: string;
|
|
61
62
|
readonly id: string;
|
|
62
63
|
readonly displayName: string | null;
|
|
@@ -74,25 +75,37 @@ type User = {
|
|
|
74
75
|
readonly hasPassword: boolean;
|
|
75
76
|
readonly authWithEmail: boolean;
|
|
76
77
|
readonly oauthProviders: readonly string[];
|
|
78
|
+
hasPermission(this: CurrentUser, scope: Team, permissionId: string): Promise<boolean>;
|
|
77
79
|
toJson(this: CurrentUser): UserJson;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
+
} & AsyncStoreProperty<"team", [id: string], Team | null, false> & AsyncStoreProperty<"teams", [], Team[], true> & Omit<AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
81
|
+
direct?: boolean;
|
|
82
|
+
}], Permission | null, false>, "onPermissionChange"> & Omit<AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
83
|
+
direct?: boolean;
|
|
84
|
+
}], Permission[], true>, "onPermissionsChange">);
|
|
85
|
+
type CurrentUser = Auth<User, UserUpdateJson> & User;
|
|
80
86
|
type CurrentInternalUser = CurrentUser & InternalAuth<CurrentUser>;
|
|
81
87
|
/**
|
|
82
88
|
* A user including sensitive fields that should only be used on the server, never sent to the client
|
|
83
89
|
* (such as sensitive information and serverMetadata).
|
|
84
90
|
*/
|
|
85
|
-
type ServerUser = Omit<User,
|
|
91
|
+
type ServerUser = (Omit<User, 'hasPermission' | 'toJson' | keyof AsyncStoreProperty<"team", [], Team | null, false> | keyof AsyncStoreProperty<"teams", [], Team[], true> | keyof AsyncStoreProperty<"permission", [], Permission[], false> | keyof AsyncStoreProperty<"permissions", [], Permission[], true>> & {
|
|
86
92
|
readonly serverMetadata: ReadonlyJson;
|
|
87
93
|
/**
|
|
88
94
|
* Returns a new user object with the sensitive fields removed.
|
|
89
95
|
*/
|
|
90
96
|
getClientUser(this: ServerUser): User;
|
|
91
|
-
|
|
92
|
-
update(this: ServerUser, user: Partial<ServerUserCustomizableJson>): Promise<void>;
|
|
97
|
+
update(this: ServerUser, user: Partial<ServerUserUpdateJson>): Promise<void>;
|
|
93
98
|
delete(this: ServerUser): Promise<void>;
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
grantPermission(scope: Team, permissionId: string): Promise<void>;
|
|
100
|
+
revokePermission(scope: Team, permissionId: string): Promise<void>;
|
|
101
|
+
hasPermission(scope: Team, permissionId: string): Promise<boolean>;
|
|
102
|
+
toJson(this: ServerUser): ServerUserJson;
|
|
103
|
+
} & AsyncStoreProperty<"team", [id: string], ServerTeam | null, false> & AsyncStoreProperty<"teams", [], ServerTeam[], true> & Omit<AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
104
|
+
direct?: boolean;
|
|
105
|
+
}], ServerPermission | null, false>, "onPermissionChange"> & Omit<AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
106
|
+
direct?: boolean;
|
|
107
|
+
}], ServerPermission[], true>, "onPermissionsChange">);
|
|
108
|
+
type CurrentServerUser = Auth<ServerUser, ServerUserUpdateJson> & Omit<ServerUser, "getClientUser"> & {
|
|
96
109
|
getClientUser(this: CurrentServerUser): CurrentUser;
|
|
97
110
|
};
|
|
98
111
|
type CurrentInternalServerUser = CurrentServerUser & InternalAuth<CurrentServerUser>;
|
|
@@ -111,11 +124,47 @@ type Project = {
|
|
|
111
124
|
readonly oauthProviders: OAuthProviderConfig[];
|
|
112
125
|
readonly emailConfig?: EmailConfig;
|
|
113
126
|
readonly domains: DomainConfig[];
|
|
127
|
+
readonly createTeamOnSignUp: boolean;
|
|
114
128
|
};
|
|
115
129
|
update(this: Project, update: ProjectUpdateOptions): Promise<void>;
|
|
116
130
|
toJson(this: Project): ProjectJson;
|
|
117
131
|
getProductionModeErrors(this: Project): ProductionModeError[];
|
|
118
132
|
};
|
|
133
|
+
type Team = {
|
|
134
|
+
id: string;
|
|
135
|
+
displayName: string;
|
|
136
|
+
createdAt: Date;
|
|
137
|
+
toJson(this: Team): TeamJson;
|
|
138
|
+
};
|
|
139
|
+
type ServerTeam = Team & {
|
|
140
|
+
listMembers(): Promise<ServerTeamMember[]>;
|
|
141
|
+
useMembers(): ServerTeamMember[];
|
|
142
|
+
update(update: Partial<ServerTeamCustomizableJson>): Promise<void>;
|
|
143
|
+
delete(): Promise<void>;
|
|
144
|
+
addUser(userId: string): Promise<void>;
|
|
145
|
+
removeUser(userId: string): Promise<void>;
|
|
146
|
+
};
|
|
147
|
+
type TeamMember = {
|
|
148
|
+
userId: string;
|
|
149
|
+
teamId: string;
|
|
150
|
+
displayName: string | null;
|
|
151
|
+
};
|
|
152
|
+
type ServerTeamMember = TeamMember & {
|
|
153
|
+
getUser(): Promise<ServerUser>;
|
|
154
|
+
};
|
|
155
|
+
type Permission = {
|
|
156
|
+
id: string;
|
|
157
|
+
} & ({
|
|
158
|
+
type: "global";
|
|
159
|
+
} | {
|
|
160
|
+
type: "team";
|
|
161
|
+
teamId: string;
|
|
162
|
+
});
|
|
163
|
+
type ServerPermission = Permission & {
|
|
164
|
+
readonly __databaseUniqueId: string;
|
|
165
|
+
readonly description?: string;
|
|
166
|
+
readonly containPermissionIds: string[];
|
|
167
|
+
};
|
|
119
168
|
type ApiKeySetBase = {
|
|
120
169
|
id: string;
|
|
121
170
|
description: string;
|
|
@@ -148,12 +197,12 @@ type OAuthProviderConfig = OAuthProviderConfigJson;
|
|
|
148
197
|
type GetUserOptions = {
|
|
149
198
|
or?: 'redirect' | 'throw' | 'return-null';
|
|
150
199
|
};
|
|
151
|
-
type AsyncStoreProperty<Name extends string, Value, IsMultiple extends boolean> = {
|
|
152
|
-
[key in `${IsMultiple extends true ? "list" : "get"}${Capitalize<Name>}`]: () => Promise<Value>;
|
|
200
|
+
type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultiple extends boolean> = {
|
|
201
|
+
[key in `${IsMultiple extends true ? "list" : "get"}${Capitalize<Name>}`]: (...args: Args) => Promise<Value>;
|
|
153
202
|
} & {
|
|
154
|
-
[key in `on${Capitalize<Name>}Change`]: (callback: (value: Value) => void) => void;
|
|
203
|
+
[key in `on${Capitalize<Name>}Change`]: (...tupleArgs: [...args: Args, callback: (value: Value) => void]) => void;
|
|
155
204
|
} & {
|
|
156
|
-
[key in `use${Capitalize<Name>}`]: () => Value;
|
|
205
|
+
[key in `use${Capitalize<Name>}`]: (...args: Args) => Value;
|
|
157
206
|
};
|
|
158
207
|
type StackClientAppConstructor = {
|
|
159
208
|
new <TokenStoreType extends string, HasTokenStore extends (TokenStoreType extends {} ? true : boolean), ProjectId extends string>(options: StackClientAppConstructorOptions<HasTokenStore, ProjectId>): StackClientApp<HasTokenStore, ProjectId>;
|
|
@@ -188,10 +237,10 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
188
237
|
toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>;
|
|
189
238
|
setCurrentUser(userJsonPromise: Promise<UserJson | null>): void;
|
|
190
239
|
};
|
|
191
|
-
} & AsyncStoreProperty<"project", ClientProjectJson, false> & {
|
|
192
|
-
[K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: () => Promise<
|
|
240
|
+
} & AsyncStoreProperty<"project", [], ClientProjectJson, false> & {
|
|
241
|
+
[K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: () => Promise<void>;
|
|
193
242
|
} & (HasTokenStore extends false ? {} : {
|
|
194
|
-
redirectToOAuthCallback(): Promise<
|
|
243
|
+
redirectToOAuthCallback(): Promise<void>;
|
|
195
244
|
useUser(options: GetUserOptions & {
|
|
196
245
|
or: 'redirect';
|
|
197
246
|
}): ProjectCurrentUser<ProjectId>;
|
|
@@ -206,22 +255,29 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
206
255
|
or: 'throw';
|
|
207
256
|
}): Promise<ProjectCurrentUser<ProjectId>>;
|
|
208
257
|
getUser(options?: GetUserOptions): Promise<ProjectCurrentUser<ProjectId> | null>;
|
|
209
|
-
onUserChange: AsyncStoreProperty<"user", CurrentUser | null, false>["onUserChange"];
|
|
258
|
+
onUserChange: AsyncStoreProperty<"user", [], CurrentUser | null, false>["onUserChange"];
|
|
210
259
|
}));
|
|
211
260
|
declare const StackClientApp: StackClientAppConstructor;
|
|
212
261
|
type StackServerAppConstructor = {
|
|
213
262
|
new <TokenStoreType extends string, HasTokenStore extends (TokenStoreType extends {} ? true : boolean), ProjectId extends string>(options: StackServerAppConstructorOptions<HasTokenStore, ProjectId>): StackServerApp<HasTokenStore, ProjectId>;
|
|
214
263
|
new (options: StackServerAppConstructorOptions<boolean, string>): StackServerApp<boolean, string>;
|
|
215
264
|
};
|
|
216
|
-
type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackClientApp<HasTokenStore, ProjectId> &
|
|
265
|
+
type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackClientApp<HasTokenStore, ProjectId> & {
|
|
266
|
+
createTeam(data: ServerTeamCustomizableJson): Promise<ServerTeam>;
|
|
267
|
+
createPermissionDefinition(data: ServerPermissionDefinitionCustomizableJson): Promise<ServerPermission>;
|
|
268
|
+
updatePermissionDefinition(permissionId: string, data: Partial<ServerPermissionDefinitionCustomizableJson>): Promise<void>;
|
|
269
|
+
deletePermissionDefinition(permissionId: string): Promise<void>;
|
|
270
|
+
listPermissionDefinitions(): Promise<ServerPermissionDefinitionJson[]>;
|
|
271
|
+
usePermissionDefinitions(): ServerPermissionDefinitionJson[];
|
|
272
|
+
} & AsyncStoreProperty<"serverUser", [], CurrentServerUser | null, false> & AsyncStoreProperty<"serverUsers", [], ServerUser[], true> & Omit<AsyncStoreProperty<"team", [id: string], ServerTeam | null, false>, "onTeamChange"> & Omit<AsyncStoreProperty<"teams", [], ServerTeam[], true>, "onTeamsChange">);
|
|
217
273
|
declare const StackServerApp: StackServerAppConstructor;
|
|
218
274
|
type StackAdminAppConstructor = {
|
|
219
275
|
new <HasTokenStore extends boolean, ProjectId extends string>(options: StackAdminAppConstructorOptions<HasTokenStore, ProjectId>): StackAdminApp<HasTokenStore, ProjectId>;
|
|
220
276
|
new (options: StackAdminAppConstructorOptions<boolean, string>): StackAdminApp<boolean, string>;
|
|
221
277
|
};
|
|
222
|
-
type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackServerApp<HasTokenStore, ProjectId> & AsyncStoreProperty<"projectAdmin", Project, false> & AsyncStoreProperty<"apiKeySets", ApiKeySet[], true> & {
|
|
278
|
+
type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackServerApp<HasTokenStore, ProjectId> & AsyncStoreProperty<"projectAdmin", [], Project, false> & AsyncStoreProperty<"apiKeySets", [], ApiKeySet[], true> & {
|
|
223
279
|
createApiKeySet(options: ApiKeySetCreateOptions): Promise<ApiKeySetFirstView>;
|
|
224
280
|
});
|
|
225
281
|
declare const StackAdminApp: StackAdminAppConstructor;
|
|
226
282
|
|
|
227
|
-
export { type ApiKeySet, type ApiKeySetBase, type ApiKeySetFirstView, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type DomainConfig, type EmailConfig, type GetUserOptions, type HandlerUrls, type OAuthProviderConfig, type Project, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type TokenStoreOptions, type User, stackAppInternalsSymbol };
|
|
283
|
+
export { type ApiKeySet, type ApiKeySetBase, type ApiKeySetFirstView, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type DomainConfig, type EmailConfig, type GetUserOptions, type HandlerUrls, type OAuthProviderConfig, type Permission, type Project, type ServerPermission, type ServerTeam, type ServerTeamMember, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type Team, type TeamMember, type TokenStoreOptions, type User, stackAppInternalsSymbol };
|
package/dist/lib/stack-app.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ServerUserJson,
|
|
2
|
-
import { ReadonlyTokenStore, UserJson,
|
|
1
|
+
import { ServerUserJson, OAuthProviderConfigJson, KnownErrors } from '@stackframe/stack-shared';
|
|
2
|
+
import { ReadonlyTokenStore, UserJson, UserUpdateJson, ProjectJson, ProductionModeError, TeamJson, EmailConfigJson, DomainConfigJson, ClientProjectJson } from '@stackframe/stack-shared/dist/interface/clientInterface';
|
|
3
3
|
import { ReadonlyJson } from '@stackframe/stack-shared/dist/utils/json';
|
|
4
4
|
import { ProjectUpdateOptions, ApiKeySetCreateOptions } from '@stackframe/stack-shared/dist/interface/adminInterface';
|
|
5
|
+
import { ServerUserUpdateJson, ServerTeamCustomizableJson, ServerPermissionDefinitionCustomizableJson, ServerPermissionDefinitionJson } from '@stackframe/stack-shared/dist/interface/serverInterface';
|
|
5
6
|
|
|
6
7
|
type TokenStoreOptions<HasTokenStore extends boolean = boolean> = HasTokenStore extends true ? "cookie" | "nextjs-cookie" | "memory" : HasTokenStore extends false ? null : TokenStoreOptions<true> | TokenStoreOptions<false>;
|
|
7
8
|
type HandlerUrls = {
|
|
@@ -42,7 +43,7 @@ type StackClientAppJson<HasTokenStore extends boolean, ProjectId extends string>
|
|
|
42
43
|
declare const stackAppInternalsSymbol: unique symbol;
|
|
43
44
|
type Auth<T, C> = {
|
|
44
45
|
readonly tokenStore: ReadonlyTokenStore;
|
|
45
|
-
update(this: T, user:
|
|
46
|
+
update(this: T, user: C): Promise<void>;
|
|
46
47
|
signOut(this: T): Promise<void>;
|
|
47
48
|
sendVerificationEmail(this: T): Promise<KnownErrors["EmailAlreadyVerified"] | undefined>;
|
|
48
49
|
updatePassword(this: T, options: {
|
|
@@ -56,7 +57,7 @@ type InternalAuth<T> = {
|
|
|
56
57
|
useOwnedProjects(this: T): Project[];
|
|
57
58
|
onOwnedProjectsChange(this: T, callback: (projects: Project[]) => void): void;
|
|
58
59
|
};
|
|
59
|
-
type User = {
|
|
60
|
+
type User = ({
|
|
60
61
|
readonly projectId: string;
|
|
61
62
|
readonly id: string;
|
|
62
63
|
readonly displayName: string | null;
|
|
@@ -74,25 +75,37 @@ type User = {
|
|
|
74
75
|
readonly hasPassword: boolean;
|
|
75
76
|
readonly authWithEmail: boolean;
|
|
76
77
|
readonly oauthProviders: readonly string[];
|
|
78
|
+
hasPermission(this: CurrentUser, scope: Team, permissionId: string): Promise<boolean>;
|
|
77
79
|
toJson(this: CurrentUser): UserJson;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
+
} & AsyncStoreProperty<"team", [id: string], Team | null, false> & AsyncStoreProperty<"teams", [], Team[], true> & Omit<AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
81
|
+
direct?: boolean;
|
|
82
|
+
}], Permission | null, false>, "onPermissionChange"> & Omit<AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
83
|
+
direct?: boolean;
|
|
84
|
+
}], Permission[], true>, "onPermissionsChange">);
|
|
85
|
+
type CurrentUser = Auth<User, UserUpdateJson> & User;
|
|
80
86
|
type CurrentInternalUser = CurrentUser & InternalAuth<CurrentUser>;
|
|
81
87
|
/**
|
|
82
88
|
* A user including sensitive fields that should only be used on the server, never sent to the client
|
|
83
89
|
* (such as sensitive information and serverMetadata).
|
|
84
90
|
*/
|
|
85
|
-
type ServerUser = Omit<User,
|
|
91
|
+
type ServerUser = (Omit<User, 'hasPermission' | 'toJson' | keyof AsyncStoreProperty<"team", [], Team | null, false> | keyof AsyncStoreProperty<"teams", [], Team[], true> | keyof AsyncStoreProperty<"permission", [], Permission[], false> | keyof AsyncStoreProperty<"permissions", [], Permission[], true>> & {
|
|
86
92
|
readonly serverMetadata: ReadonlyJson;
|
|
87
93
|
/**
|
|
88
94
|
* Returns a new user object with the sensitive fields removed.
|
|
89
95
|
*/
|
|
90
96
|
getClientUser(this: ServerUser): User;
|
|
91
|
-
|
|
92
|
-
update(this: ServerUser, user: Partial<ServerUserCustomizableJson>): Promise<void>;
|
|
97
|
+
update(this: ServerUser, user: Partial<ServerUserUpdateJson>): Promise<void>;
|
|
93
98
|
delete(this: ServerUser): Promise<void>;
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
grantPermission(scope: Team, permissionId: string): Promise<void>;
|
|
100
|
+
revokePermission(scope: Team, permissionId: string): Promise<void>;
|
|
101
|
+
hasPermission(scope: Team, permissionId: string): Promise<boolean>;
|
|
102
|
+
toJson(this: ServerUser): ServerUserJson;
|
|
103
|
+
} & AsyncStoreProperty<"team", [id: string], ServerTeam | null, false> & AsyncStoreProperty<"teams", [], ServerTeam[], true> & Omit<AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
104
|
+
direct?: boolean;
|
|
105
|
+
}], ServerPermission | null, false>, "onPermissionChange"> & Omit<AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
106
|
+
direct?: boolean;
|
|
107
|
+
}], ServerPermission[], true>, "onPermissionsChange">);
|
|
108
|
+
type CurrentServerUser = Auth<ServerUser, ServerUserUpdateJson> & Omit<ServerUser, "getClientUser"> & {
|
|
96
109
|
getClientUser(this: CurrentServerUser): CurrentUser;
|
|
97
110
|
};
|
|
98
111
|
type CurrentInternalServerUser = CurrentServerUser & InternalAuth<CurrentServerUser>;
|
|
@@ -111,11 +124,47 @@ type Project = {
|
|
|
111
124
|
readonly oauthProviders: OAuthProviderConfig[];
|
|
112
125
|
readonly emailConfig?: EmailConfig;
|
|
113
126
|
readonly domains: DomainConfig[];
|
|
127
|
+
readonly createTeamOnSignUp: boolean;
|
|
114
128
|
};
|
|
115
129
|
update(this: Project, update: ProjectUpdateOptions): Promise<void>;
|
|
116
130
|
toJson(this: Project): ProjectJson;
|
|
117
131
|
getProductionModeErrors(this: Project): ProductionModeError[];
|
|
118
132
|
};
|
|
133
|
+
type Team = {
|
|
134
|
+
id: string;
|
|
135
|
+
displayName: string;
|
|
136
|
+
createdAt: Date;
|
|
137
|
+
toJson(this: Team): TeamJson;
|
|
138
|
+
};
|
|
139
|
+
type ServerTeam = Team & {
|
|
140
|
+
listMembers(): Promise<ServerTeamMember[]>;
|
|
141
|
+
useMembers(): ServerTeamMember[];
|
|
142
|
+
update(update: Partial<ServerTeamCustomizableJson>): Promise<void>;
|
|
143
|
+
delete(): Promise<void>;
|
|
144
|
+
addUser(userId: string): Promise<void>;
|
|
145
|
+
removeUser(userId: string): Promise<void>;
|
|
146
|
+
};
|
|
147
|
+
type TeamMember = {
|
|
148
|
+
userId: string;
|
|
149
|
+
teamId: string;
|
|
150
|
+
displayName: string | null;
|
|
151
|
+
};
|
|
152
|
+
type ServerTeamMember = TeamMember & {
|
|
153
|
+
getUser(): Promise<ServerUser>;
|
|
154
|
+
};
|
|
155
|
+
type Permission = {
|
|
156
|
+
id: string;
|
|
157
|
+
} & ({
|
|
158
|
+
type: "global";
|
|
159
|
+
} | {
|
|
160
|
+
type: "team";
|
|
161
|
+
teamId: string;
|
|
162
|
+
});
|
|
163
|
+
type ServerPermission = Permission & {
|
|
164
|
+
readonly __databaseUniqueId: string;
|
|
165
|
+
readonly description?: string;
|
|
166
|
+
readonly containPermissionIds: string[];
|
|
167
|
+
};
|
|
119
168
|
type ApiKeySetBase = {
|
|
120
169
|
id: string;
|
|
121
170
|
description: string;
|
|
@@ -148,12 +197,12 @@ type OAuthProviderConfig = OAuthProviderConfigJson;
|
|
|
148
197
|
type GetUserOptions = {
|
|
149
198
|
or?: 'redirect' | 'throw' | 'return-null';
|
|
150
199
|
};
|
|
151
|
-
type AsyncStoreProperty<Name extends string, Value, IsMultiple extends boolean> = {
|
|
152
|
-
[key in `${IsMultiple extends true ? "list" : "get"}${Capitalize<Name>}`]: () => Promise<Value>;
|
|
200
|
+
type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultiple extends boolean> = {
|
|
201
|
+
[key in `${IsMultiple extends true ? "list" : "get"}${Capitalize<Name>}`]: (...args: Args) => Promise<Value>;
|
|
153
202
|
} & {
|
|
154
|
-
[key in `on${Capitalize<Name>}Change`]: (callback: (value: Value) => void) => void;
|
|
203
|
+
[key in `on${Capitalize<Name>}Change`]: (...tupleArgs: [...args: Args, callback: (value: Value) => void]) => void;
|
|
155
204
|
} & {
|
|
156
|
-
[key in `use${Capitalize<Name>}`]: () => Value;
|
|
205
|
+
[key in `use${Capitalize<Name>}`]: (...args: Args) => Value;
|
|
157
206
|
};
|
|
158
207
|
type StackClientAppConstructor = {
|
|
159
208
|
new <TokenStoreType extends string, HasTokenStore extends (TokenStoreType extends {} ? true : boolean), ProjectId extends string>(options: StackClientAppConstructorOptions<HasTokenStore, ProjectId>): StackClientApp<HasTokenStore, ProjectId>;
|
|
@@ -188,10 +237,10 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
188
237
|
toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>;
|
|
189
238
|
setCurrentUser(userJsonPromise: Promise<UserJson | null>): void;
|
|
190
239
|
};
|
|
191
|
-
} & AsyncStoreProperty<"project", ClientProjectJson, false> & {
|
|
192
|
-
[K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: () => Promise<
|
|
240
|
+
} & AsyncStoreProperty<"project", [], ClientProjectJson, false> & {
|
|
241
|
+
[K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: () => Promise<void>;
|
|
193
242
|
} & (HasTokenStore extends false ? {} : {
|
|
194
|
-
redirectToOAuthCallback(): Promise<
|
|
243
|
+
redirectToOAuthCallback(): Promise<void>;
|
|
195
244
|
useUser(options: GetUserOptions & {
|
|
196
245
|
or: 'redirect';
|
|
197
246
|
}): ProjectCurrentUser<ProjectId>;
|
|
@@ -206,22 +255,29 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
206
255
|
or: 'throw';
|
|
207
256
|
}): Promise<ProjectCurrentUser<ProjectId>>;
|
|
208
257
|
getUser(options?: GetUserOptions): Promise<ProjectCurrentUser<ProjectId> | null>;
|
|
209
|
-
onUserChange: AsyncStoreProperty<"user", CurrentUser | null, false>["onUserChange"];
|
|
258
|
+
onUserChange: AsyncStoreProperty<"user", [], CurrentUser | null, false>["onUserChange"];
|
|
210
259
|
}));
|
|
211
260
|
declare const StackClientApp: StackClientAppConstructor;
|
|
212
261
|
type StackServerAppConstructor = {
|
|
213
262
|
new <TokenStoreType extends string, HasTokenStore extends (TokenStoreType extends {} ? true : boolean), ProjectId extends string>(options: StackServerAppConstructorOptions<HasTokenStore, ProjectId>): StackServerApp<HasTokenStore, ProjectId>;
|
|
214
263
|
new (options: StackServerAppConstructorOptions<boolean, string>): StackServerApp<boolean, string>;
|
|
215
264
|
};
|
|
216
|
-
type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackClientApp<HasTokenStore, ProjectId> &
|
|
265
|
+
type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackClientApp<HasTokenStore, ProjectId> & {
|
|
266
|
+
createTeam(data: ServerTeamCustomizableJson): Promise<ServerTeam>;
|
|
267
|
+
createPermissionDefinition(data: ServerPermissionDefinitionCustomizableJson): Promise<ServerPermission>;
|
|
268
|
+
updatePermissionDefinition(permissionId: string, data: Partial<ServerPermissionDefinitionCustomizableJson>): Promise<void>;
|
|
269
|
+
deletePermissionDefinition(permissionId: string): Promise<void>;
|
|
270
|
+
listPermissionDefinitions(): Promise<ServerPermissionDefinitionJson[]>;
|
|
271
|
+
usePermissionDefinitions(): ServerPermissionDefinitionJson[];
|
|
272
|
+
} & AsyncStoreProperty<"serverUser", [], CurrentServerUser | null, false> & AsyncStoreProperty<"serverUsers", [], ServerUser[], true> & Omit<AsyncStoreProperty<"team", [id: string], ServerTeam | null, false>, "onTeamChange"> & Omit<AsyncStoreProperty<"teams", [], ServerTeam[], true>, "onTeamsChange">);
|
|
217
273
|
declare const StackServerApp: StackServerAppConstructor;
|
|
218
274
|
type StackAdminAppConstructor = {
|
|
219
275
|
new <HasTokenStore extends boolean, ProjectId extends string>(options: StackAdminAppConstructorOptions<HasTokenStore, ProjectId>): StackAdminApp<HasTokenStore, ProjectId>;
|
|
220
276
|
new (options: StackAdminAppConstructorOptions<boolean, string>): StackAdminApp<boolean, string>;
|
|
221
277
|
};
|
|
222
|
-
type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackServerApp<HasTokenStore, ProjectId> & AsyncStoreProperty<"projectAdmin", Project, false> & AsyncStoreProperty<"apiKeySets", ApiKeySet[], true> & {
|
|
278
|
+
type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (StackServerApp<HasTokenStore, ProjectId> & AsyncStoreProperty<"projectAdmin", [], Project, false> & AsyncStoreProperty<"apiKeySets", [], ApiKeySet[], true> & {
|
|
223
279
|
createApiKeySet(options: ApiKeySetCreateOptions): Promise<ApiKeySetFirstView>;
|
|
224
280
|
});
|
|
225
281
|
declare const StackAdminApp: StackAdminAppConstructor;
|
|
226
282
|
|
|
227
|
-
export { type ApiKeySet, type ApiKeySetBase, type ApiKeySetFirstView, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type DomainConfig, type EmailConfig, type GetUserOptions, type HandlerUrls, type OAuthProviderConfig, type Project, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type TokenStoreOptions, type User, stackAppInternalsSymbol };
|
|
283
|
+
export { type ApiKeySet, type ApiKeySetBase, type ApiKeySetFirstView, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type DomainConfig, type EmailConfig, type GetUserOptions, type HandlerUrls, type OAuthProviderConfig, type Permission, type Project, type ServerPermission, type ServerTeam, type ServerTeamMember, type ServerUser, StackAdminApp, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructorOptions, type Team, type TeamMember, type TokenStoreOptions, type User, stackAppInternalsSymbol };
|