@stackframe/stack 2.5.3 → 2.5.5
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 +18 -0
- package/dist/components/credential-sign-in-form.js +4 -14
- package/dist/components/credential-sign-in-form.js.map +1 -1
- package/dist/components/credential-sign-up-form.js +18 -20
- package/dist/components/credential-sign-up-form.js.map +1 -1
- package/dist/components/elements/maybe-full-page.js.map +1 -1
- package/dist/components/elements/ssr-layout-effect.d.mts +1 -0
- package/dist/components/elements/ssr-layout-effect.d.ts +1 -0
- package/dist/components/elements/ssr-layout-effect.js +8 -1
- package/dist/components/elements/ssr-layout-effect.js.map +1 -1
- package/dist/components/elements/user-avatar.d.mts +5 -3
- package/dist/components/elements/user-avatar.d.ts +5 -3
- package/dist/components/elements/user-avatar.js.map +1 -1
- package/dist/components/forgot-password-form.js +3 -13
- package/dist/components/forgot-password-form.js.map +1 -1
- package/dist/components/magic-link-sign-in-form.js +3 -13
- package/dist/components/magic-link-sign-in-form.js.map +1 -1
- package/dist/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/components/message-cards/message-card.js.map +1 -1
- package/dist/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/components/oauth-button-group.d.mts +7 -2
- package/dist/components/oauth-button-group.d.ts +7 -2
- package/dist/components/oauth-button-group.js +1 -1
- package/dist/components/oauth-button-group.js.map +1 -1
- package/dist/components/oauth-button.js +28 -26
- package/dist/components/oauth-button.js.map +1 -1
- package/dist/components/password-reset-form.js +4 -3
- package/dist/components/password-reset-form.js.map +1 -1
- package/dist/components/selected-team-switcher.d.mts +5 -3
- package/dist/components/selected-team-switcher.d.ts +5 -3
- package/dist/components/selected-team-switcher.js +12 -1
- package/dist/components/selected-team-switcher.js.map +1 -1
- package/dist/components/user-button.js.map +1 -1
- package/dist/components-page/account-settings.js +42 -7
- package/dist/components-page/account-settings.js.map +1 -1
- package/dist/components-page/auth-page.d.mts +9 -2
- package/dist/components-page/auth-page.d.ts +9 -2
- package/dist/components-page/auth-page.js +3 -3
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/email-verification.js +12 -2
- package/dist/components-page/email-verification.js.map +1 -1
- package/dist/components-page/error-page.js.map +1 -1
- package/dist/components-page/magic-link-callback.js +13 -3
- package/dist/components-page/magic-link-callback.js.map +1 -1
- package/dist/components-page/password-reset.js +2 -2
- package/dist/components-page/password-reset.js.map +1 -1
- package/dist/components-page/sign-out.js +12 -2
- package/dist/components-page/sign-out.js.map +1 -1
- package/dist/components-page/stack-handler.d.mts +5 -3
- package/dist/components-page/stack-handler.d.ts +5 -3
- package/dist/components-page/stack-handler.js +27 -10
- package/dist/components-page/stack-handler.js.map +1 -1
- package/dist/esm/components/credential-sign-in-form.js +4 -4
- package/dist/esm/components/credential-sign-in-form.js.map +1 -1
- package/dist/esm/components/credential-sign-up-form.js +18 -20
- package/dist/esm/components/credential-sign-up-form.js.map +1 -1
- package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
- package/dist/esm/components/elements/ssr-layout-effect.js +8 -1
- package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
- package/dist/esm/components/elements/user-avatar.js.map +1 -1
- package/dist/esm/components/forgot-password-form.js +3 -3
- package/dist/esm/components/forgot-password-form.js.map +1 -1
- package/dist/esm/components/magic-link-sign-in-form.js +3 -3
- package/dist/esm/components/magic-link-sign-in-form.js.map +1 -1
- package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/esm/components/message-cards/message-card.js.map +1 -1
- package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/esm/components/oauth-button-group.js +1 -1
- package/dist/esm/components/oauth-button-group.js.map +1 -1
- package/dist/esm/components/oauth-button.js +29 -27
- package/dist/esm/components/oauth-button.js.map +1 -1
- package/dist/esm/components/password-reset-form.js +4 -3
- package/dist/esm/components/password-reset-form.js.map +1 -1
- package/dist/esm/components/selected-team-switcher.js +2 -1
- package/dist/esm/components/selected-team-switcher.js.map +1 -1
- package/dist/esm/components/user-button.js.map +1 -1
- package/dist/esm/components-page/account-settings.js +42 -7
- package/dist/esm/components-page/account-settings.js.map +1 -1
- package/dist/esm/components-page/auth-page.js +3 -3
- package/dist/esm/components-page/auth-page.js.map +1 -1
- package/dist/esm/components-page/email-verification.js +2 -2
- package/dist/esm/components-page/email-verification.js.map +1 -1
- package/dist/esm/components-page/error-page.js.map +1 -1
- package/dist/esm/components-page/magic-link-callback.js +3 -3
- package/dist/esm/components-page/magic-link-callback.js.map +1 -1
- package/dist/esm/components-page/password-reset.js +2 -2
- package/dist/esm/components-page/password-reset.js.map +1 -1
- package/dist/esm/components-page/sign-out.js +2 -2
- package/dist/esm/components-page/sign-out.js.map +1 -1
- package/dist/esm/components-page/stack-handler.js +27 -10
- package/dist/esm/components-page/stack-handler.js.map +1 -1
- package/dist/esm/index.js +1 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/auth.js.map +1 -1
- package/dist/esm/lib/cookie.js +6 -1
- package/dist/esm/lib/cookie.js.map +1 -1
- package/dist/esm/lib/hooks.js.map +1 -1
- package/dist/esm/lib/stack-app.js +478 -349
- package/dist/esm/lib/stack-app.js.map +1 -1
- package/dist/esm/providers/stack-provider-client.js +3 -4
- package/dist/esm/providers/stack-provider-client.js.map +1 -1
- package/dist/esm/providers/theme-provider.js +16 -7
- package/dist/esm/providers/theme-provider.js.map +1 -1
- package/dist/esm/utils/browser-script.js +2 -2
- package/dist/esm/utils/browser-script.js.map +1 -1
- package/dist/esm/utils/email.js +2 -2
- package/dist/esm/utils/email.js.map +1 -1
- package/dist/index.d.mts +6 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +4 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/cookie.js +6 -1
- package/dist/lib/cookie.js.map +1 -1
- package/dist/lib/hooks.d.mts +5 -3
- package/dist/lib/hooks.d.ts +5 -3
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/stack-app.d.mts +219 -114
- package/dist/lib/stack-app.d.ts +219 -114
- package/dist/lib/stack-app.js +500 -369
- package/dist/lib/stack-app.js.map +1 -1
- package/dist/providers/stack-provider-client.d.mts +8 -6
- package/dist/providers/stack-provider-client.d.ts +8 -6
- package/dist/providers/stack-provider-client.js +4 -5
- package/dist/providers/stack-provider-client.js.map +1 -1
- package/dist/providers/stack-provider.d.mts +5 -3
- package/dist/providers/stack-provider.d.ts +5 -3
- package/dist/providers/theme-provider.d.mts +2 -1
- package/dist/providers/theme-provider.d.ts +2 -1
- package/dist/providers/theme-provider.js +15 -6
- package/dist/providers/theme-provider.js.map +1 -1
- package/dist/utils/browser-script.d.mts +3 -1
- package/dist/utils/browser-script.d.ts +3 -1
- package/dist/utils/browser-script.js +2 -2
- package/dist/utils/browser-script.js.map +1 -1
- package/dist/utils/email.js +2 -12
- package/dist/utils/email.js.map +1 -1
- package/package.json +4 -5
- package/dist/esm/providers/styled-components-registry.js +0 -25
- package/dist/esm/providers/styled-components-registry.js.map +0 -1
- package/dist/providers/styled-components-registry.d.mts +0 -8
- package/dist/providers/styled-components-registry.d.ts +0 -8
- package/dist/providers/styled-components-registry.js +0 -45
- package/dist/providers/styled-components-registry.js.map +0 -1
package/dist/lib/stack-app.d.mts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { KnownErrors
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { KnownErrors } from '@stackframe/stack-shared';
|
|
2
|
+
import { ProductionModeError } from '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
3
|
+
import { StandardProvider } from '@stackframe/stack-shared/dist/interface/clientInterface';
|
|
4
|
+
import { ApiKeysCrud } from '@stackframe/stack-shared/dist/interface/crud/api-keys';
|
|
5
|
+
import { CurrentUserCrud } from '@stackframe/stack-shared/dist/interface/crud/current-user';
|
|
6
|
+
import { EmailTemplateType } from '@stackframe/stack-shared/dist/interface/crud/email-templates';
|
|
7
|
+
import { TeamPermissionDefinitionsCrud } from '@stackframe/stack-shared/dist/interface/crud/team-permissions';
|
|
7
8
|
import { InternalSession } from '@stackframe/stack-shared/dist/sessions';
|
|
9
|
+
import { ReadonlyJson } from '@stackframe/stack-shared/dist/utils/json';
|
|
8
10
|
|
|
9
11
|
type RequestLike = {
|
|
10
12
|
headers: {
|
|
@@ -44,6 +46,12 @@ type StackClientAppConstructorOptions<HasTokenStore extends boolean, ProjectId e
|
|
|
44
46
|
urls?: Partial<HandlerUrls>;
|
|
45
47
|
oauthScopesOnSignIn?: Partial<OAuthScopesOnSignIn>;
|
|
46
48
|
tokenStore: TokenStoreInit<HasTokenStore>;
|
|
49
|
+
/**
|
|
50
|
+
* By default, the Stack app will automatically prefetch some data from Stack's server when this app is first
|
|
51
|
+
* constructed. This improves the performance of your app, but will create network requests that are unnecessary if
|
|
52
|
+
* the app is never used or disposed of immediately. To disable this behavior, set this option to true.
|
|
53
|
+
*/
|
|
54
|
+
noAutomaticPrefetch?: boolean;
|
|
47
55
|
};
|
|
48
56
|
type StackServerAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = StackClientAppConstructorOptions<HasTokenStore, ProjectId> & {
|
|
49
57
|
secretServerKey?: string;
|
|
@@ -57,9 +65,6 @@ type StackClientAppJson<HasTokenStore extends boolean, ProjectId extends string>
|
|
|
57
65
|
uniqueIdentifier: string;
|
|
58
66
|
};
|
|
59
67
|
declare const stackAppInternalsSymbol: unique symbol;
|
|
60
|
-
type RedirectToOptions = {
|
|
61
|
-
replace?: boolean;
|
|
62
|
-
};
|
|
63
68
|
type Session = {
|
|
64
69
|
getTokens(): Promise<{
|
|
65
70
|
accessToken: string | null;
|
|
@@ -160,29 +165,31 @@ type User = {
|
|
|
160
165
|
sendVerificationEmail(): Promise<KnownErrors["EmailAlreadyVerified"] | void>;
|
|
161
166
|
readonly profileImageUrl: string | null;
|
|
162
167
|
readonly signedUpAt: Date;
|
|
163
|
-
readonly clientMetadata:
|
|
164
|
-
setClientMetadata(metadata:
|
|
168
|
+
readonly clientMetadata: any;
|
|
169
|
+
setClientMetadata(metadata: any): Promise<void>;
|
|
165
170
|
/**
|
|
166
171
|
* Whether the primary e-mail can be used for authentication.
|
|
167
172
|
*/
|
|
168
|
-
readonly
|
|
173
|
+
readonly emailAuthEnabled: boolean;
|
|
169
174
|
/**
|
|
170
175
|
* Whether the user has a password set.
|
|
171
176
|
*/
|
|
172
177
|
readonly hasPassword: boolean;
|
|
173
|
-
readonly oauthProviders: readonly
|
|
178
|
+
readonly oauthProviders: readonly {
|
|
179
|
+
id: string;
|
|
180
|
+
}[];
|
|
174
181
|
updatePassword(options: {
|
|
175
182
|
oldPassword: string;
|
|
176
183
|
newPassword: string;
|
|
177
|
-
}): Promise<KnownErrors["
|
|
184
|
+
}): Promise<KnownErrors["PasswordConfirmationMismatch"] | KnownErrors["PasswordRequirementsNotMet"] | void>;
|
|
178
185
|
/**
|
|
179
186
|
* A shorthand method to update multiple fields of the user at once.
|
|
180
187
|
*/
|
|
181
|
-
update(update:
|
|
188
|
+
update(update: UserUpdateOptions): Promise<void>;
|
|
182
189
|
hasPermission(scope: Team, permissionId: string): Promise<boolean>;
|
|
183
190
|
readonly selectedTeam: Team | null;
|
|
184
191
|
setSelectedTeam(team: Team | null): Promise<void>;
|
|
185
|
-
createTeam(data:
|
|
192
|
+
createTeam(data: TeamCreateOptions): Promise<Team>;
|
|
186
193
|
getConnectedAccount(id: StandardProvider, options: {
|
|
187
194
|
or: 'redirect';
|
|
188
195
|
scopes?: string[];
|
|
@@ -199,19 +206,24 @@ type User = {
|
|
|
199
206
|
or?: 'redirect' | 'throw' | 'return-null';
|
|
200
207
|
scopes?: string[];
|
|
201
208
|
}): OAuthConnection | null;
|
|
202
|
-
toClientJson():
|
|
209
|
+
toClientJson(): CurrentUserCrud["Client"]["Read"];
|
|
203
210
|
} & AsyncStoreProperty<"team", [id: string], Team | null, false> & AsyncStoreProperty<"teams", [], Team[], true> & AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
204
|
-
|
|
205
|
-
}],
|
|
206
|
-
|
|
207
|
-
}],
|
|
211
|
+
recursive?: boolean;
|
|
212
|
+
}], TeamPermission | null, false> & AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
213
|
+
recursive?: boolean;
|
|
214
|
+
}], TeamPermission[], true>;
|
|
208
215
|
type InternalUserExtra = {
|
|
209
|
-
createProject(newProject:
|
|
216
|
+
createProject(newProject: AdminProjectUpdateOptions & {
|
|
210
217
|
displayName: string;
|
|
211
|
-
}): Promise<
|
|
212
|
-
} & AsyncStoreProperty<"ownedProjects", [],
|
|
218
|
+
}): Promise<AdminProject>;
|
|
219
|
+
} & AsyncStoreProperty<"ownedProjects", [], AdminOwnedProject[], true>;
|
|
213
220
|
type CurrentUser = Auth & User;
|
|
214
221
|
type CurrentInternalUser = CurrentUser & InternalUserExtra;
|
|
222
|
+
type UserUpdateOptions = {
|
|
223
|
+
displayName?: string;
|
|
224
|
+
clientMetadata?: ReadonlyJson;
|
|
225
|
+
selectedTeamId?: string | null;
|
|
226
|
+
};
|
|
215
227
|
/**
|
|
216
228
|
* A user including sensitive fields that should only be used on the server, never sent to the client
|
|
217
229
|
* (such as sensitive information and serverMetadata).
|
|
@@ -220,96 +232,122 @@ type ServerUser = {
|
|
|
220
232
|
setPrimaryEmail(email: string, options?: {
|
|
221
233
|
verified?: boolean | undefined;
|
|
222
234
|
}): Promise<void>;
|
|
223
|
-
readonly serverMetadata:
|
|
224
|
-
setServerMetadata(metadata:
|
|
235
|
+
readonly serverMetadata: any;
|
|
236
|
+
setServerMetadata(metadata: any): Promise<void>;
|
|
225
237
|
updatePassword(options: {
|
|
226
238
|
oldPassword?: string;
|
|
227
239
|
newPassword: string;
|
|
228
|
-
}): Promise<KnownErrors["
|
|
229
|
-
update(user:
|
|
240
|
+
}): Promise<KnownErrors["PasswordConfirmationMismatch"] | KnownErrors["PasswordRequirementsNotMet"] | void>;
|
|
241
|
+
update(user: ServerUserUpdateOptions): Promise<void>;
|
|
230
242
|
delete(): Promise<void>;
|
|
231
243
|
grantPermission(scope: Team, permissionId: string): Promise<void>;
|
|
232
244
|
revokePermission(scope: Team, permissionId: string): Promise<void>;
|
|
233
245
|
hasPermission(scope: Team, permissionId: string): Promise<boolean>;
|
|
234
|
-
toServerJson(): ServerUserJson;
|
|
235
246
|
} & AsyncStoreProperty<"team", [id: string], ServerTeam | null, false> & AsyncStoreProperty<"teams", [], ServerTeam[], true> & AsyncStoreProperty<"permission", [scope: Team, permissionId: string, options?: {
|
|
236
247
|
direct?: boolean;
|
|
237
|
-
}],
|
|
248
|
+
}], AdminTeamPermission | null, false> & AsyncStoreProperty<"permissions", [scope: Team, options?: {
|
|
238
249
|
direct?: boolean;
|
|
239
|
-
}],
|
|
250
|
+
}], AdminTeamPermission[], true> & User;
|
|
240
251
|
type CurrentServerUser = Auth & ServerUser;
|
|
241
252
|
type CurrentInternalServerUser = CurrentServerUser & InternalUserExtra;
|
|
253
|
+
type ServerUserUpdateOptions = {
|
|
254
|
+
primaryEmail?: string;
|
|
255
|
+
primaryEmailVerified?: boolean;
|
|
256
|
+
primaryEmailAuthEnabled?: boolean;
|
|
257
|
+
serverMetadata?: ReadonlyJson;
|
|
258
|
+
password?: string;
|
|
259
|
+
} & UserUpdateOptions;
|
|
242
260
|
type Project = {
|
|
261
|
+
readonly id: string;
|
|
262
|
+
readonly config: ProjectConfig;
|
|
263
|
+
};
|
|
264
|
+
type AdminProject = {
|
|
243
265
|
readonly id: string;
|
|
244
266
|
readonly displayName: string;
|
|
245
|
-
readonly description
|
|
267
|
+
readonly description: string | null;
|
|
246
268
|
readonly createdAt: Date;
|
|
247
269
|
readonly userCount: number;
|
|
248
270
|
readonly isProductionMode: boolean;
|
|
249
|
-
readonly
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
toJson(this: Project): ProjectJson;
|
|
263
|
-
getProductionModeErrors(this: Project): ProductionModeError[];
|
|
271
|
+
readonly config: AdminProjectConfig;
|
|
272
|
+
update(this: AdminProject, update: AdminProjectUpdateOptions): Promise<void>;
|
|
273
|
+
getProductionModeErrors(this: AdminProject): Promise<ProductionModeError[]>;
|
|
274
|
+
useProductionModeErrors(this: AdminProject): ProductionModeError[];
|
|
275
|
+
} & Project;
|
|
276
|
+
type AdminOwnedProject = {
|
|
277
|
+
readonly app: StackAdminApp<false>;
|
|
278
|
+
} & AdminProject;
|
|
279
|
+
type AdminProjectUpdateOptions = {
|
|
280
|
+
displayName?: string;
|
|
281
|
+
description?: string;
|
|
282
|
+
isProductionMode?: boolean;
|
|
283
|
+
config?: AdminProjectConfigUpdateOptions;
|
|
264
284
|
};
|
|
265
|
-
type
|
|
266
|
-
id: string;
|
|
285
|
+
type AdminProjectCreateOptions = Omit<AdminProjectUpdateOptions, 'displayName'> & {
|
|
267
286
|
displayName: string;
|
|
268
|
-
profileImageUrl?: string;
|
|
269
|
-
createdAt: Date;
|
|
270
|
-
toJson(): TeamJson;
|
|
271
|
-
};
|
|
272
|
-
type ServerTeam = Team & {
|
|
273
|
-
listMembers(): Promise<ServerTeamMember[]>;
|
|
274
|
-
useMembers(): ServerTeamMember[];
|
|
275
|
-
update(update: Partial<ServerTeamCustomizableJson>): Promise<void>;
|
|
276
|
-
delete(): Promise<void>;
|
|
277
|
-
addUser(userId: string): Promise<void>;
|
|
278
|
-
removeUser(userId: string): Promise<void>;
|
|
279
287
|
};
|
|
280
|
-
type
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
288
|
+
type ProjectConfig = {
|
|
289
|
+
readonly credentialEnabled: boolean;
|
|
290
|
+
readonly magicLinkEnabled: boolean;
|
|
291
|
+
readonly oauthProviders: OAuthProviderConfig[];
|
|
284
292
|
};
|
|
285
|
-
type
|
|
286
|
-
|
|
293
|
+
type OAuthProviderConfig = {
|
|
294
|
+
readonly id: string;
|
|
287
295
|
};
|
|
288
|
-
type
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
296
|
+
type AdminProjectConfig = {
|
|
297
|
+
readonly credentialEnabled: boolean;
|
|
298
|
+
readonly magicLinkEnabled: boolean;
|
|
299
|
+
readonly allowLocalhost: boolean;
|
|
300
|
+
readonly oauthProviders: AdminOAuthProviderConfig[];
|
|
301
|
+
readonly emailConfig?: AdminEmailConfig;
|
|
302
|
+
readonly domains: AdminDomainConfig[];
|
|
303
|
+
readonly createTeamOnSignUp: boolean;
|
|
304
|
+
readonly teamCreatorDefaultPermissions: AdminTeamPermission[];
|
|
305
|
+
readonly teamMemberDefaultPermissions: AdminTeamPermission[];
|
|
306
|
+
} & OAuthProviderConfig;
|
|
307
|
+
type AdminEmailConfig = ({
|
|
308
|
+
type: "standard";
|
|
309
|
+
senderName: string;
|
|
310
|
+
senderEmail: string;
|
|
311
|
+
host: string;
|
|
312
|
+
port: number;
|
|
313
|
+
username: string;
|
|
314
|
+
password: string;
|
|
292
315
|
} | {
|
|
293
|
-
type: "
|
|
294
|
-
teamId: string;
|
|
316
|
+
type: "shared";
|
|
295
317
|
});
|
|
296
|
-
type
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
readonly containPermissionIds: string[];
|
|
318
|
+
type AdminDomainConfig = {
|
|
319
|
+
domain: string;
|
|
320
|
+
handlerPath: string;
|
|
300
321
|
};
|
|
301
|
-
type
|
|
322
|
+
type AdminOAuthProviderConfig = {
|
|
302
323
|
id: string;
|
|
324
|
+
enabled: boolean;
|
|
325
|
+
} & ({
|
|
326
|
+
type: 'shared';
|
|
327
|
+
} | {
|
|
328
|
+
type: 'standard';
|
|
329
|
+
clientId: string;
|
|
330
|
+
clientSecret: string;
|
|
331
|
+
}) & OAuthProviderConfig;
|
|
332
|
+
type AdminProjectConfigUpdateOptions = {
|
|
333
|
+
domains?: {
|
|
334
|
+
domain: string;
|
|
335
|
+
handlerPath: string;
|
|
336
|
+
}[];
|
|
337
|
+
oauthProviders?: AdminOAuthProviderConfig[];
|
|
338
|
+
credentialEnabled?: boolean;
|
|
339
|
+
magicLinkEnabled?: boolean;
|
|
340
|
+
allowLocalhost?: boolean;
|
|
341
|
+
createTeamOnSignUp?: boolean;
|
|
342
|
+
emailConfig?: AdminEmailConfig;
|
|
343
|
+
teamCreatorDefaultPermissions?: {
|
|
344
|
+
id: string;
|
|
345
|
+
}[];
|
|
346
|
+
teamMemberDefaultPermissions?: {
|
|
347
|
+
id: string;
|
|
348
|
+
}[];
|
|
303
349
|
};
|
|
304
|
-
type
|
|
305
|
-
getAccessToken(): Promise<{
|
|
306
|
-
accessToken: string;
|
|
307
|
-
}>;
|
|
308
|
-
useAccessToken(): {
|
|
309
|
-
accessToken: string;
|
|
310
|
-
};
|
|
311
|
-
};
|
|
312
|
-
type ApiKeySetBase = {
|
|
350
|
+
type ApiKeyBase = {
|
|
313
351
|
id: string;
|
|
314
352
|
description: string;
|
|
315
353
|
expiresAt: Date;
|
|
@@ -319,12 +357,13 @@ type ApiKeySetBase = {
|
|
|
319
357
|
whyInvalid(): "expired" | "manually-revoked" | null;
|
|
320
358
|
revoke(): Promise<void>;
|
|
321
359
|
};
|
|
322
|
-
type
|
|
360
|
+
type ApiKeyBaseCrudRead = Pick<ApiKeysCrud["Admin"]["Read"], "id" | "created_at_millis" | "description" | "expires_at_millis" | "manually_revoked_at_millis">;
|
|
361
|
+
type ApiKeyFirstView = {
|
|
323
362
|
publishableClientKey?: string;
|
|
324
363
|
secretServerKey?: string;
|
|
325
364
|
superSecretAdminKey?: string;
|
|
326
|
-
};
|
|
327
|
-
type
|
|
365
|
+
} & ApiKeyBase;
|
|
366
|
+
type ApiKey = {
|
|
328
367
|
publishableClientKey: null | {
|
|
329
368
|
lastFour: string;
|
|
330
369
|
};
|
|
@@ -334,21 +373,71 @@ type ApiKeySet = ApiKeySetBase & {
|
|
|
334
373
|
superSecretAdminKey: null | {
|
|
335
374
|
lastFour: string;
|
|
336
375
|
};
|
|
376
|
+
} & ApiKeyBase;
|
|
377
|
+
type ApiKeyCreateOptions = {
|
|
378
|
+
description: string;
|
|
379
|
+
expiresAt: Date;
|
|
380
|
+
hasPublishableClientKey: boolean;
|
|
381
|
+
hasSecretServerKey: boolean;
|
|
382
|
+
hasSuperSecretAdminKey: boolean;
|
|
383
|
+
};
|
|
384
|
+
type Team = {
|
|
385
|
+
id: string;
|
|
386
|
+
displayName: string;
|
|
387
|
+
profileImageUrl: string | null;
|
|
337
388
|
};
|
|
338
|
-
type
|
|
339
|
-
|
|
340
|
-
|
|
389
|
+
type TeamCreateOptions = {
|
|
390
|
+
displayName: string;
|
|
391
|
+
profileImageUrl?: string;
|
|
392
|
+
};
|
|
393
|
+
type ServerTeam = {
|
|
394
|
+
createdAt: Date;
|
|
395
|
+
listUsers(): Promise<ServerUser[]>;
|
|
396
|
+
useUsers(): ServerUser[];
|
|
397
|
+
update(update: ServerTeamUpdateOptions): Promise<void>;
|
|
398
|
+
delete(): Promise<void>;
|
|
399
|
+
addUser(userId: string): Promise<void>;
|
|
400
|
+
removeUser(userId: string): Promise<void>;
|
|
401
|
+
} & Team;
|
|
402
|
+
type ServerTeamCreateOptions = TeamCreateOptions;
|
|
403
|
+
type ServerTeamUpdateOptions = {
|
|
404
|
+
displayName?: string;
|
|
405
|
+
profileImageUrl?: string | null;
|
|
406
|
+
};
|
|
407
|
+
type TeamPermission = {
|
|
408
|
+
id: string;
|
|
409
|
+
};
|
|
410
|
+
type AdminTeamPermission = TeamPermission;
|
|
411
|
+
type AdminTeamPermissionDefinition = {
|
|
412
|
+
id: string;
|
|
413
|
+
description?: string;
|
|
414
|
+
containedPermissionIds: string[];
|
|
415
|
+
};
|
|
416
|
+
type AdminTeamPermissionDefinitionCreateOptions = {
|
|
417
|
+
id: string;
|
|
418
|
+
description?: string;
|
|
419
|
+
containedPermissionIds: string[];
|
|
420
|
+
};
|
|
421
|
+
declare function serverTeamPermissionDefinitionCreateOptionsToCrud(options: AdminTeamPermissionDefinitionCreateOptions): TeamPermissionDefinitionsCrud["Admin"]["Create"];
|
|
422
|
+
type AdminTeamPermissionDefinitionUpdateOptions = Partial<AdminTeamPermissionDefinitionCreateOptions>;
|
|
423
|
+
declare function serverTeamPermissionDefinitionUpdateOptionsToCrud(options: AdminTeamPermissionDefinitionUpdateOptions): TeamPermissionDefinitionsCrud["Admin"]["Update"];
|
|
424
|
+
type Connection = {
|
|
425
|
+
id: string;
|
|
426
|
+
};
|
|
427
|
+
type OAuthConnection = {
|
|
428
|
+
getAccessToken(): Promise<{
|
|
429
|
+
accessToken: string;
|
|
430
|
+
}>;
|
|
431
|
+
useAccessToken(): {
|
|
432
|
+
accessToken: string;
|
|
433
|
+
};
|
|
434
|
+
} & Connection;
|
|
341
435
|
type GetUserOptions<HasTokenStore> = {
|
|
342
436
|
or?: 'redirect' | 'throw' | 'return-null';
|
|
343
437
|
tokenStore?: TokenStoreInit;
|
|
344
438
|
} & (HasTokenStore extends false ? {
|
|
345
439
|
tokenStore: TokenStoreInit;
|
|
346
440
|
} : {});
|
|
347
|
-
type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultiple extends boolean> = {
|
|
348
|
-
[key in `${IsMultiple extends true ? "list" : "get"}${Capitalize<Name>}`]: (...args: Args) => Promise<Value>;
|
|
349
|
-
} & {
|
|
350
|
-
[key in `use${Capitalize<Name>}`]: (...args: Args) => Value;
|
|
351
|
-
};
|
|
352
441
|
type StackClientAppConstructor = {
|
|
353
442
|
new <TokenStoreType extends string, HasTokenStore extends (TokenStoreType extends {} ? true : boolean), ProjectId extends string>(options: StackClientAppConstructorOptions<HasTokenStore, ProjectId>): StackClientApp<HasTokenStore, ProjectId>;
|
|
354
443
|
new (options: StackClientAppConstructorOptions<boolean, string>): StackClientApp<boolean, string>;
|
|
@@ -395,9 +484,9 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
395
484
|
getUser(options?: GetUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>;
|
|
396
485
|
[stackAppInternalsSymbol]: {
|
|
397
486
|
toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>;
|
|
398
|
-
setCurrentUser(userJsonPromise: Promise<
|
|
487
|
+
setCurrentUser(userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null>): void;
|
|
399
488
|
};
|
|
400
|
-
} & AsyncStoreProperty<"project", [],
|
|
489
|
+
} & AsyncStoreProperty<"project", [], Project, false> & {
|
|
401
490
|
[K in `redirectTo${Capitalize<keyof Omit<HandlerUrls, 'handler' | 'oauthCallback'>>}`]: (options?: RedirectToOptions) => Promise<void>;
|
|
402
491
|
});
|
|
403
492
|
declare const StackClientApp: StackClientAppConstructor;
|
|
@@ -406,16 +495,7 @@ type StackServerAppConstructor = {
|
|
|
406
495
|
new (options: StackServerAppConstructorOptions<boolean, string>): StackServerApp<boolean, string>;
|
|
407
496
|
};
|
|
408
497
|
type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = ({
|
|
409
|
-
createTeam(data:
|
|
410
|
-
createPermissionDefinition(data: ServerPermissionDefinitionCustomizableJson): Promise<ServerPermission>;
|
|
411
|
-
updatePermissionDefinition(permissionId: string, data: Partial<ServerPermissionDefinitionCustomizableJson>): Promise<void>;
|
|
412
|
-
deletePermissionDefinition(permissionId: string): Promise<void>;
|
|
413
|
-
listPermissionDefinitions(): Promise<ServerPermissionDefinitionJson[]>;
|
|
414
|
-
usePermissionDefinitions(): ServerPermissionDefinitionJson[];
|
|
415
|
-
useEmailTemplates(): ListEmailTemplatesCrud['Server']['Read'];
|
|
416
|
-
listEmailTemplates(): Promise<ListEmailTemplatesCrud['Server']['Read']>;
|
|
417
|
-
updateEmailTemplate(type: EmailTemplateType, data: EmailTemplateCrud['Server']['Update']): Promise<void>;
|
|
418
|
-
resetEmailTemplate(type: EmailTemplateType): Promise<void>;
|
|
498
|
+
createTeam(data: ServerTeamCreateOptions): Promise<ServerTeam>;
|
|
419
499
|
/**
|
|
420
500
|
* @deprecated use `getUser()` instead
|
|
421
501
|
*/
|
|
@@ -434,15 +514,40 @@ type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
434
514
|
or: 'throw';
|
|
435
515
|
}): Promise<ProjectCurrentServerUser<ProjectId>>;
|
|
436
516
|
getUser(options?: GetUserOptions<HasTokenStore>): Promise<ProjectCurrentServerUser<ProjectId> | null>;
|
|
437
|
-
} &
|
|
517
|
+
} & AsyncStoreProperty<"users", [], ServerUser[], true> & AsyncStoreProperty<"team", [id: string], ServerTeam | null, false> & AsyncStoreProperty<"teams", [], ServerTeam[], true> & StackClientApp<HasTokenStore, ProjectId>);
|
|
438
518
|
declare const StackServerApp: StackServerAppConstructor;
|
|
439
519
|
type StackAdminAppConstructor = {
|
|
440
520
|
new <HasTokenStore extends boolean, ProjectId extends string>(options: StackAdminAppConstructorOptions<HasTokenStore, ProjectId>): StackAdminApp<HasTokenStore, ProjectId>;
|
|
441
521
|
new (options: StackAdminAppConstructorOptions<boolean, string>): StackAdminApp<boolean, string>;
|
|
442
522
|
};
|
|
443
|
-
type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (
|
|
444
|
-
|
|
445
|
-
|
|
523
|
+
type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (AsyncStoreProperty<"project", [], AdminProject, false> & AsyncStoreProperty<"apiKeys", [], ApiKey[], true> & AsyncStoreProperty<"teamPermissionDefinitions", [], AdminTeamPermissionDefinition[], true> & {
|
|
524
|
+
useEmailTemplates(): AdminEmailTemplate[];
|
|
525
|
+
listEmailTemplates(): Promise<AdminEmailTemplate[]>;
|
|
526
|
+
updateEmailTemplate(type: EmailTemplateType, data: AdminEmailTemplateUpdateOptions): Promise<void>;
|
|
527
|
+
resetEmailTemplate(type: EmailTemplateType): Promise<void>;
|
|
528
|
+
createApiKey(options: ApiKeyCreateOptions): Promise<ApiKeyFirstView>;
|
|
529
|
+
createTeamPermissionDefinition(data: AdminTeamPermissionDefinitionCreateOptions): Promise<AdminTeamPermission>;
|
|
530
|
+
updateTeamPermissionDefinition(permissionId: string, data: AdminTeamPermissionDefinitionUpdateOptions): Promise<void>;
|
|
531
|
+
deleteTeamPermissionDefinition(permissionId: string): Promise<void>;
|
|
532
|
+
} & StackServerApp<HasTokenStore, ProjectId>);
|
|
446
533
|
declare const StackAdminApp: StackAdminAppConstructor;
|
|
534
|
+
type AdminEmailTemplate = {
|
|
535
|
+
type: EmailTemplateType;
|
|
536
|
+
subject: string;
|
|
537
|
+
content: any;
|
|
538
|
+
isDefault: boolean;
|
|
539
|
+
};
|
|
540
|
+
type AdminEmailTemplateUpdateOptions = {
|
|
541
|
+
subject?: string;
|
|
542
|
+
content?: any;
|
|
543
|
+
};
|
|
544
|
+
type RedirectToOptions = {
|
|
545
|
+
replace?: boolean;
|
|
546
|
+
};
|
|
547
|
+
type AsyncStoreProperty<Name extends string, Args extends any[], Value, IsMultiple extends boolean> = {
|
|
548
|
+
[key in `${IsMultiple extends true ? "list" : "get"}${Capitalize<Name>}`]: (...args: Args) => Promise<Value>;
|
|
549
|
+
} & {
|
|
550
|
+
[key in `use${Capitalize<Name>}`]: (...args: Args) => Value;
|
|
551
|
+
};
|
|
447
552
|
|
|
448
|
-
export { type
|
|
553
|
+
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 };
|