@stackframe/stack 2.8.39 → 2.8.41
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 +19 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrations/convex.js +18 -0
- package/dist/esm/integrations/convex.js.map +1 -0
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js +82 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js +34 -0
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/esm/lib/stack-app/common.js.map +1 -1
- package/dist/esm/lib/stack-app/index.js.map +1 -1
- package/dist/esm/lib/stack-app/users/index.js.map +1 -1
- package/dist/esm/providers/stack-provider-client.js.map +1 -1
- package/dist/index.d.mts +96 -19
- package/dist/index.d.ts +96 -19
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/convex.js +43 -0
- package/dist/integrations/convex.js.map +1 -0
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js +82 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/common.js +1 -1
- package/dist/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js +34 -0
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/lib/stack-app/common.js.map +1 -1
- package/dist/lib/stack-app/index.js.map +1 -1
- package/dist/lib/stack-app/users/index.js.map +1 -1
- package/dist/providers/stack-provider-client.js.map +1 -1
- package/package.json +6 -5
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { KnownErrors } from '@stackframe/stack-shared';
|
|
|
2
2
|
import { CurrentUserCrud } from '@stackframe/stack-shared/dist/interface/crud/current-user';
|
|
3
3
|
import { Result } from '@stackframe/stack-shared/dist/utils/results';
|
|
4
4
|
import { ProviderType } from '@stackframe/stack-shared/dist/utils/oauth';
|
|
5
|
+
import { GenericQueryCtx, UserIdentity } from 'convex/server';
|
|
5
6
|
import { inlineOfferSchema } from '@stackframe/stack-shared/dist/schema-fields';
|
|
6
7
|
import * as yup from 'yup';
|
|
7
8
|
import { ProductionModeError } from '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
@@ -38,12 +39,28 @@ type RedirectMethod = "window" | "nextjs" | "none" | {
|
|
|
38
39
|
useNavigate: () => (to: string) => void;
|
|
39
40
|
navigate?: (to: string) => void;
|
|
40
41
|
};
|
|
41
|
-
type
|
|
42
|
+
type GetCurrentUserOptions<HasTokenStore> = {
|
|
42
43
|
or?: 'redirect' | 'throw' | 'return-null' | 'anonymous' | /** @deprecated */ 'anonymous-if-exists[deprecated]';
|
|
43
44
|
tokenStore?: TokenStoreInit;
|
|
44
45
|
} & (HasTokenStore extends false ? {
|
|
45
46
|
tokenStore: TokenStoreInit;
|
|
46
47
|
} : {});
|
|
48
|
+
type ConvexCtx = GenericQueryCtx<any> | {
|
|
49
|
+
auth: {
|
|
50
|
+
getUserIdentity: () => Promise<UserIdentity | null>;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
type GetCurrentPartialUserOptions<HasTokenStore> = {
|
|
54
|
+
or?: 'return-null' | 'anonymous';
|
|
55
|
+
tokenStore?: TokenStoreInit;
|
|
56
|
+
} & ({
|
|
57
|
+
from: 'token';
|
|
58
|
+
} | {
|
|
59
|
+
from: 'convex';
|
|
60
|
+
ctx: ConvexCtx;
|
|
61
|
+
}) & (HasTokenStore extends false ? {
|
|
62
|
+
tokenStore: TokenStoreInit;
|
|
63
|
+
} : {});
|
|
47
64
|
type RequestLike = {
|
|
48
65
|
headers: {
|
|
49
66
|
get: (name: string) => string | null;
|
|
@@ -577,6 +594,8 @@ type User = BaseUser;
|
|
|
577
594
|
type CurrentUser = BaseUser & Auth & UserExtra & Customer;
|
|
578
595
|
type CurrentInternalUser = CurrentUser & InternalUserExtra;
|
|
579
596
|
type ProjectCurrentUser<ProjectId> = ProjectId extends "internal" ? CurrentInternalUser : CurrentUser;
|
|
597
|
+
type TokenPartialUser = Pick<User, "id" | "displayName" | "primaryEmail" | "primaryEmailVerified" | "isAnonymous">;
|
|
598
|
+
type SyncedPartialUser = TokenPartialUser & Pick<User, "id" | "displayName" | "primaryEmail" | "primaryEmailVerified" | "profileImageUrl" | "signedUpAt" | "clientMetadata" | "clientReadOnlyMetadata" | "isAnonymous" | "hasPassword">;
|
|
580
599
|
type ActiveSession = {
|
|
581
600
|
id: string;
|
|
582
601
|
userId: string;
|
|
@@ -654,6 +673,7 @@ type ServerUser = ServerBaseUser & BaseUser & UserExtra & Customer<true>;
|
|
|
654
673
|
type CurrentServerUser = Auth & ServerUser;
|
|
655
674
|
type CurrentInternalServerUser = CurrentServerUser & InternalUserExtra;
|
|
656
675
|
type ProjectCurrentServerUser<ProjectId> = ProjectId extends "internal" ? CurrentInternalServerUser : CurrentServerUser;
|
|
676
|
+
type SyncedPartialServerUser = SyncedPartialUser & Pick<ServerUser, "serverMetadata">;
|
|
657
677
|
type ServerUserUpdateOptions = {
|
|
658
678
|
primaryEmail?: string | null;
|
|
659
679
|
primaryEmailVerified?: boolean;
|
|
@@ -770,34 +790,60 @@ type StackServerApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
770
790
|
*/
|
|
771
791
|
getServerUser(): Promise<ProjectCurrentServerUser<ProjectId> | null>;
|
|
772
792
|
createUser(options: ServerUserCreateOptions): Promise<ServerUser>;
|
|
773
|
-
useUser(options:
|
|
793
|
+
useUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
774
794
|
or: 'redirect';
|
|
775
795
|
}): ProjectCurrentServerUser<ProjectId>;
|
|
776
|
-
useUser(options:
|
|
796
|
+
useUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
777
797
|
or: 'throw';
|
|
778
798
|
}): ProjectCurrentServerUser<ProjectId>;
|
|
779
|
-
useUser(options:
|
|
799
|
+
useUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
780
800
|
or: 'anonymous';
|
|
781
801
|
}): ProjectCurrentServerUser<ProjectId>;
|
|
782
|
-
useUser(options?:
|
|
802
|
+
useUser(options?: GetCurrentUserOptions<HasTokenStore>): ProjectCurrentServerUser<ProjectId> | null;
|
|
783
803
|
useUser(id: string): ServerUser | null;
|
|
784
804
|
useUser(options: {
|
|
785
805
|
apiKey: string;
|
|
806
|
+
or?: "return-null" | "anonymous";
|
|
807
|
+
}): ServerUser | null;
|
|
808
|
+
useUser(options: {
|
|
809
|
+
from: "convex";
|
|
810
|
+
ctx: GenericQueryCtx<any>;
|
|
811
|
+
or?: "return-null" | "anonymous";
|
|
786
812
|
}): ServerUser | null;
|
|
787
|
-
getUser(options:
|
|
813
|
+
getUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
788
814
|
or: 'redirect';
|
|
789
815
|
}): Promise<ProjectCurrentServerUser<ProjectId>>;
|
|
790
|
-
getUser(options:
|
|
816
|
+
getUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
791
817
|
or: 'throw';
|
|
792
818
|
}): Promise<ProjectCurrentServerUser<ProjectId>>;
|
|
793
|
-
getUser(options:
|
|
819
|
+
getUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
794
820
|
or: 'anonymous';
|
|
795
821
|
}): Promise<ProjectCurrentServerUser<ProjectId>>;
|
|
796
|
-
getUser(options?:
|
|
822
|
+
getUser(options?: GetCurrentUserOptions<HasTokenStore>): Promise<ProjectCurrentServerUser<ProjectId> | null>;
|
|
797
823
|
getUser(id: string): Promise<ServerUser | null>;
|
|
798
824
|
getUser(options: {
|
|
799
825
|
apiKey: string;
|
|
826
|
+
or?: "return-null" | "anonymous";
|
|
800
827
|
}): Promise<ServerUser | null>;
|
|
828
|
+
getUser(options: {
|
|
829
|
+
from: "convex";
|
|
830
|
+
ctx: GenericQueryCtx<any>;
|
|
831
|
+
or?: "return-null" | "anonymous";
|
|
832
|
+
}): Promise<ServerUser | null>;
|
|
833
|
+
getPartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
834
|
+
from: 'token';
|
|
835
|
+
}): Promise<TokenPartialUser | null>;
|
|
836
|
+
getPartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
837
|
+
from: 'convex';
|
|
838
|
+
}): Promise<TokenPartialUser | null>;
|
|
839
|
+
getPartialUser(options: GetCurrentPartialUserOptions<HasTokenStore>): Promise<SyncedPartialServerUser | TokenPartialUser | null>;
|
|
840
|
+
usePartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
841
|
+
from: 'token';
|
|
842
|
+
}): TokenPartialUser | null;
|
|
843
|
+
usePartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
844
|
+
from: 'convex';
|
|
845
|
+
}): TokenPartialUser | null;
|
|
846
|
+
usePartialUser(options: GetCurrentPartialUserOptions<HasTokenStore>): SyncedPartialServerUser | TokenPartialUser | null;
|
|
801
847
|
useTeam(id: string): ServerTeam | null;
|
|
802
848
|
useTeam(options: {
|
|
803
849
|
apiKey: string;
|
|
@@ -1172,26 +1218,48 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
1172
1218
|
noRedirect?: boolean;
|
|
1173
1219
|
}): Promise<Result<undefined, KnownErrors["VerificationCodeError"] | KnownErrors["InvalidTotpCode"]>>;
|
|
1174
1220
|
redirectToOAuthCallback(): Promise<void>;
|
|
1175
|
-
|
|
1221
|
+
getConvexClientAuth(options: {
|
|
1222
|
+
tokenStore: TokenStoreInit;
|
|
1223
|
+
}): (args: {
|
|
1224
|
+
forceRefreshToken: boolean;
|
|
1225
|
+
}) => Promise<string | null>;
|
|
1226
|
+
getConvexHttpClientAuth(options: {
|
|
1227
|
+
tokenStore: TokenStoreInit;
|
|
1228
|
+
}): Promise<string>;
|
|
1229
|
+
useUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
1176
1230
|
or: 'redirect';
|
|
1177
1231
|
}): ProjectCurrentUser<ProjectId>;
|
|
1178
|
-
useUser(options:
|
|
1232
|
+
useUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
1179
1233
|
or: 'throw';
|
|
1180
1234
|
}): ProjectCurrentUser<ProjectId>;
|
|
1181
|
-
useUser(options:
|
|
1235
|
+
useUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
1182
1236
|
or: 'anonymous';
|
|
1183
1237
|
}): ProjectCurrentUser<ProjectId>;
|
|
1184
|
-
useUser(options?:
|
|
1185
|
-
getUser(options:
|
|
1238
|
+
useUser(options?: GetCurrentUserOptions<HasTokenStore>): ProjectCurrentUser<ProjectId> | null;
|
|
1239
|
+
getUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
1186
1240
|
or: 'redirect';
|
|
1187
1241
|
}): Promise<ProjectCurrentUser<ProjectId>>;
|
|
1188
|
-
getUser(options:
|
|
1242
|
+
getUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
1189
1243
|
or: 'throw';
|
|
1190
1244
|
}): Promise<ProjectCurrentUser<ProjectId>>;
|
|
1191
|
-
getUser(options:
|
|
1245
|
+
getUser(options: GetCurrentUserOptions<HasTokenStore> & {
|
|
1192
1246
|
or: 'anonymous';
|
|
1193
1247
|
}): Promise<ProjectCurrentUser<ProjectId>>;
|
|
1194
|
-
getUser(options?:
|
|
1248
|
+
getUser(options?: GetCurrentUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>;
|
|
1249
|
+
getPartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
1250
|
+
from: 'token';
|
|
1251
|
+
}): Promise<TokenPartialUser | null>;
|
|
1252
|
+
getPartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
1253
|
+
from: 'convex';
|
|
1254
|
+
}): Promise<TokenPartialUser | null>;
|
|
1255
|
+
getPartialUser(options: GetCurrentPartialUserOptions<HasTokenStore>): Promise<SyncedPartialUser | TokenPartialUser | null>;
|
|
1256
|
+
usePartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
1257
|
+
from: 'token';
|
|
1258
|
+
}): TokenPartialUser | null;
|
|
1259
|
+
usePartialUser(options: GetCurrentPartialUserOptions<HasTokenStore> & {
|
|
1260
|
+
from: 'convex';
|
|
1261
|
+
}): TokenPartialUser | null;
|
|
1262
|
+
usePartialUser(options: GetCurrentPartialUserOptions<HasTokenStore>): SyncedPartialUser | TokenPartialUser | null;
|
|
1195
1263
|
useNavigate(): (to: string) => void;
|
|
1196
1264
|
[stackAppInternalsSymbol]: {
|
|
1197
1265
|
toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>;
|
|
@@ -1213,6 +1281,15 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
1213
1281
|
});
|
|
1214
1282
|
declare const StackClientApp: StackClientAppConstructor;
|
|
1215
1283
|
|
|
1284
|
+
declare function getConvexProvidersConfig(options: {
|
|
1285
|
+
projectId?: string;
|
|
1286
|
+
}): {
|
|
1287
|
+
type: string;
|
|
1288
|
+
issuer: string;
|
|
1289
|
+
jwks: string;
|
|
1290
|
+
algorithm: string;
|
|
1291
|
+
}[];
|
|
1292
|
+
|
|
1216
1293
|
declare const iconMap: {
|
|
1217
1294
|
readonly Contact: React$1.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
|
|
1218
1295
|
readonly ShieldCheck: React$1.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
|
|
@@ -1345,7 +1422,7 @@ declare function NextStackHandler<HasTokenStore extends boolean>(props: BaseHand
|
|
|
1345
1422
|
routeProps: RouteProps | unknown;
|
|
1346
1423
|
})): Promise<any>;
|
|
1347
1424
|
|
|
1348
|
-
type GetUserOptions =
|
|
1425
|
+
type GetUserOptions = GetCurrentUserOptions<true> & {
|
|
1349
1426
|
projectIdMustMatch?: string;
|
|
1350
1427
|
};
|
|
1351
1428
|
/**
|
|
@@ -1587,4 +1664,4 @@ type UserButtonProps = {
|
|
|
1587
1664
|
};
|
|
1588
1665
|
declare function UserButton(props: UserButtonProps): react_jsx_runtime.JSX.Element;
|
|
1589
1666
|
|
|
1590
|
-
export { AccountSettings, type AdminDomainConfig, type AdminEmailConfig, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type Auth, AuthPage, CliAuthConfirmation, type Connection, type ContactChannel, CredentialSignIn, CredentialSignUp, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, EmailVerification, ForgotPassword, type
|
|
1667
|
+
export { AccountSettings, type AdminDomainConfig, type AdminEmailConfig, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type Auth, AuthPage, CliAuthConfirmation, type Connection, type ContactChannel, CredentialSignIn, CredentialSignUp, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, EmailVerification, ForgotPassword, type GetCurrentUserOptions, type GetCurrentUserOptions as GetUserOptions, type HandlerUrls, type InternalApiKey, type InternalApiKeyBase, type InternalApiKeyBaseCrudRead, type InternalApiKeyCreateOptions, type InternalApiKeyFirstView, MagicLinkSignIn, MessageCard, OAuthButton, OAuthButtonGroup, type OAuthConnection, type OAuthProvider, type OAuthProviderConfig, type OAuthScopesOnSignIn, PasswordReset, type Project, type ProjectConfig, SelectedTeamSwitcher, type ServerContactChannel, type ServerListUsersOptions, type ServerOAuthProvider, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, type Session, SignIn, SignUp, StackAdminApp, type StackAdminAppConstructor, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructor, type StackClientAppConstructorOptions, type StackClientAppJson, NextStackHandler as StackHandler, NextStackProvider as StackProvider, StackServerApp, type StackServerAppConstructor, type StackServerAppConstructorOptions, StackTheme, type Team, type TeamCreateOptions, type TeamInvitation$1 as TeamInvitation, type TeamMemberProfile, TeamSwitcher, type TeamUpdateOptions, type TeamUser, type User, UserAvatar, UserButton, getConvexProvidersConfig, stackAppInternalsSymbol, useStackApp, useUser };
|
package/dist/index.js
CHANGED
|
@@ -52,17 +52,20 @@ __export(src_exports, {
|
|
|
52
52
|
TeamSwitcher: () => import_team_switcher.TeamSwitcher,
|
|
53
53
|
UserAvatar: () => import_user_avatar.UserAvatar,
|
|
54
54
|
UserButton: () => import_user_button.UserButton,
|
|
55
|
+
getConvexProvidersConfig: () => import_convex.getConvexProvidersConfig,
|
|
55
56
|
useStackApp: () => import_hooks.useStackApp,
|
|
56
57
|
useUser: () => import_hooks.useUser
|
|
57
58
|
});
|
|
58
59
|
module.exports = __toCommonJS(src_exports);
|
|
59
60
|
__reExport(src_exports, require("./lib/stack-app/index.js"), module.exports);
|
|
61
|
+
var import_convex = require("./integrations/convex.js");
|
|
60
62
|
var import_stack_handler = __toESM(require("./components-page/stack-handler.js"));
|
|
61
63
|
var import_hooks = require("./lib/hooks.js");
|
|
62
64
|
var import_stack_provider = __toESM(require("./providers/stack-provider.js"));
|
|
63
65
|
var import_theme_provider = require("./providers/theme-provider.js");
|
|
64
66
|
var import_account_settings = require("./components-page/account-settings.js");
|
|
65
67
|
var import_auth_page = require("./components-page/auth-page.js");
|
|
68
|
+
var import_cli_auth_confirm = require("./components-page/cli-auth-confirm.js");
|
|
66
69
|
var import_email_verification = require("./components-page/email-verification.js");
|
|
67
70
|
var import_forgot_password = require("./components-page/forgot-password.js");
|
|
68
71
|
var import_password_reset = require("./components-page/password-reset.js");
|
|
@@ -78,7 +81,6 @@ var import_oauth_button_group = require("./components/oauth-button-group.js");
|
|
|
78
81
|
var import_selected_team_switcher = require("./components/selected-team-switcher.js");
|
|
79
82
|
var import_team_switcher = require("./components/team-switcher.js");
|
|
80
83
|
var import_user_button = require("./components/user-button.js");
|
|
81
|
-
var import_cli_auth_confirm = require("./components-page/cli-auth-confirm.js");
|
|
82
84
|
// Annotate the CommonJS export names for ESM import in node:
|
|
83
85
|
0 && (module.exports = {
|
|
84
86
|
AccountSettings,
|
|
@@ -102,6 +104,7 @@ var import_cli_auth_confirm = require("./components-page/cli-auth-confirm.js");
|
|
|
102
104
|
TeamSwitcher,
|
|
103
105
|
UserAvatar,
|
|
104
106
|
UserButton,
|
|
107
|
+
getConvexProvidersConfig,
|
|
105
108
|
useStackApp,
|
|
106
109
|
useUser,
|
|
107
110
|
...require("./lib/stack-app/index.js")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nexport * from './lib/stack-app';\n\nexport { default as StackHandler } from \"./components-page/stack-handler\";\nexport { useStackApp, useUser } from \"./lib/hooks\";\nexport { default as StackProvider } from \"./providers/stack-provider\";\nexport { StackTheme } from './providers/theme-provider';\n\nexport { AccountSettings } from \"./components-page/account-settings\";\nexport { AuthPage } from \"./components-page/auth-page\";\nexport { EmailVerification } from \"./components-page/email-verification\";\nexport { ForgotPassword } from \"./components-page/forgot-password\";\nexport { PasswordReset } from \"./components-page/password-reset\";\nexport { SignIn } from \"./components-page/sign-in\";\nexport { SignUp } from \"./components-page/sign-up\";\nexport { CredentialSignIn as CredentialSignIn } from \"./components/credential-sign-in\";\nexport { CredentialSignUp as CredentialSignUp } from \"./components/credential-sign-up\";\nexport { UserAvatar } from \"./components/elements/user-avatar\";\nexport { MagicLinkSignIn as MagicLinkSignIn } from \"./components/magic-link-sign-in\";\nexport { MessageCard } from \"./components/message-cards/message-card\";\nexport { OAuthButton } from \"./components/oauth-button\";\nexport { OAuthButtonGroup } from \"./components/oauth-button-group\";\nexport { SelectedTeamSwitcher } from \"./components/selected-team-switcher\";\nexport { TeamSwitcher } from \"./components/team-switcher\";\nexport { UserButton } from \"./components/user-button\";\
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nexport * from './lib/stack-app';\n\nexport { getConvexProvidersConfig } from \"./integrations/convex\";\n\nexport { default as StackHandler } from \"./components-page/stack-handler\";\nexport { useStackApp, useUser } from \"./lib/hooks\";\nexport { default as StackProvider } from \"./providers/stack-provider\";\nexport { StackTheme } from './providers/theme-provider';\n\nexport { AccountSettings } from \"./components-page/account-settings\";\nexport { AuthPage } from \"./components-page/auth-page\";\nexport { CliAuthConfirmation } from \"./components-page/cli-auth-confirm\";\nexport { EmailVerification } from \"./components-page/email-verification\";\nexport { ForgotPassword } from \"./components-page/forgot-password\";\nexport { PasswordReset } from \"./components-page/password-reset\";\nexport { SignIn } from \"./components-page/sign-in\";\nexport { SignUp } from \"./components-page/sign-up\";\nexport { CredentialSignIn as CredentialSignIn } from \"./components/credential-sign-in\";\nexport { CredentialSignUp as CredentialSignUp } from \"./components/credential-sign-up\";\nexport { UserAvatar } from \"./components/elements/user-avatar\";\nexport { MagicLinkSignIn as MagicLinkSignIn } from \"./components/magic-link-sign-in\";\nexport { MessageCard } from \"./components/message-cards/message-card\";\nexport { OAuthButton } from \"./components/oauth-button\";\nexport { OAuthButtonGroup } from \"./components/oauth-button-group\";\nexport { SelectedTeamSwitcher } from \"./components/selected-team-switcher\";\nexport { TeamSwitcher } from \"./components/team-switcher\";\nexport { UserButton } from \"./components/user-button\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,wBAAc,qCAJd;AAMA,oBAAyC;AAEzC,2BAAwC;AACxC,mBAAqC;AACrC,4BAAyC;AACzC,4BAA2B;AAE3B,8BAAgC;AAChC,uBAAyB;AACzB,8BAAoC;AACpC,gCAAkC;AAClC,6BAA+B;AAC/B,4BAA8B;AAC9B,qBAAuB;AACvB,qBAAuB;AACvB,gCAAqD;AACrD,gCAAqD;AACrD,yBAA2B;AAC3B,gCAAmD;AACnD,0BAA4B;AAC5B,0BAA4B;AAC5B,gCAAiC;AACjC,oCAAqC;AACrC,2BAA6B;AAC7B,yBAA2B;","names":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/integrations/convex.ts
|
|
21
|
+
var convex_exports = {};
|
|
22
|
+
__export(convex_exports, {
|
|
23
|
+
getConvexProvidersConfig: () => getConvexProvidersConfig
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(convex_exports);
|
|
26
|
+
var import_urls = require("@stackframe/stack-shared/dist/utils/urls");
|
|
27
|
+
var import_common = require("../lib/stack-app/apps/implementations/common.js");
|
|
28
|
+
function getConvexProvidersConfig(options) {
|
|
29
|
+
const projectId = options.projectId ?? (0, import_common.getDefaultProjectId)();
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
type: "customJwt",
|
|
33
|
+
issuer: import_urls.urlString`https://api.stack-auth.com/api/v1/projects/${projectId}`,
|
|
34
|
+
jwks: import_urls.urlString`https://api.stack-auth.com/api/v1/projects/${projectId}/.well-known/jwks.json?include_anonymous=true`,
|
|
35
|
+
algorithm: "ES256"
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
+
0 && (module.exports = {
|
|
41
|
+
getConvexProvidersConfig
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=convex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/integrations/convex.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { urlString } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { getDefaultProjectId } from \"../lib/stack-app/apps/implementations/common\";\n\nexport function getConvexProvidersConfig(options: {\n projectId?: string,\n}) {\n const projectId = options.projectId ?? getDefaultProjectId();\n return [\n {\n type: \"customJwt\",\n issuer: urlString`https://api.stack-auth.com/api/v1/projects/${projectId}`,\n jwks: urlString`https://api.stack-auth.com/api/v1/projects/${projectId}/.well-known/jwks.json?include_anonymous=true`,\n algorithm: \"ES256\",\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAA0B;AAC1B,oBAAoC;AAE7B,SAAS,yBAAyB,SAEtC;AACD,QAAM,YAAY,QAAQ,iBAAa,mCAAoB;AAC3D,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,QAAQ,mEAAuD,SAAS;AAAA,MACxE,MAAM,mEAAuD,SAAS;AAAA,MACtE,WAAW;AAAA,IACb;AAAA,EACF;AACF;","names":[]}
|
|
@@ -182,6 +182,9 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
182
182
|
return await this._interface.getItem({ customCustomerId, itemId }, session);
|
|
183
183
|
}
|
|
184
184
|
);
|
|
185
|
+
this._convexPartialUserCache = (0, import_common2.createCache)(
|
|
186
|
+
async ([ctx]) => await this._getPartialUserFromConvex(ctx)
|
|
187
|
+
);
|
|
185
188
|
this._anonymousSignUpInProgress = null;
|
|
186
189
|
this._memoryTokenStore = (0, import_common2.createEmptyTokenStore)();
|
|
187
190
|
this._nextServerCookiesTokenStores = /* @__PURE__ */ new WeakMap();
|
|
@@ -471,7 +474,8 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
471
474
|
}
|
|
472
475
|
async _getSession(overrideTokenStoreInit) {
|
|
473
476
|
const tokenStore = this._getOrCreateTokenStore(await this._createCookieHelper(), overrideTokenStoreInit);
|
|
474
|
-
|
|
477
|
+
const session = this._getSessionFromTokenStore(tokenStore);
|
|
478
|
+
return session;
|
|
475
479
|
}
|
|
476
480
|
_useSession(overrideTokenStoreInit) {
|
|
477
481
|
const tokenStore = this._useTokenStore(overrideTokenStoreInit);
|
|
@@ -1362,6 +1366,83 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
1362
1366
|
return crud && this._currentUserFromCrud(crud, session);
|
|
1363
1367
|
}, [crud, session, options?.or]);
|
|
1364
1368
|
}
|
|
1369
|
+
_getTokenPartialUserFromSession(session, options) {
|
|
1370
|
+
const accessToken = session.getAccessTokenIfNotExpiredYet(0);
|
|
1371
|
+
if (!accessToken) {
|
|
1372
|
+
return null;
|
|
1373
|
+
}
|
|
1374
|
+
const isAnonymous = accessToken.payload.is_anonymous;
|
|
1375
|
+
if (isAnonymous && options.or !== "anonymous") {
|
|
1376
|
+
return null;
|
|
1377
|
+
}
|
|
1378
|
+
return {
|
|
1379
|
+
id: accessToken.payload.sub,
|
|
1380
|
+
primaryEmail: accessToken.payload.email,
|
|
1381
|
+
displayName: accessToken.payload.name,
|
|
1382
|
+
primaryEmailVerified: accessToken.payload.email_verified,
|
|
1383
|
+
isAnonymous
|
|
1384
|
+
};
|
|
1385
|
+
}
|
|
1386
|
+
async _getPartialUserFromConvex(ctx) {
|
|
1387
|
+
const auth = await ctx.auth.getUserIdentity();
|
|
1388
|
+
if (!auth) {
|
|
1389
|
+
return null;
|
|
1390
|
+
}
|
|
1391
|
+
return {
|
|
1392
|
+
id: auth.subject,
|
|
1393
|
+
displayName: auth.name ?? null,
|
|
1394
|
+
primaryEmail: auth.email ?? null,
|
|
1395
|
+
primaryEmailVerified: auth.email_verified,
|
|
1396
|
+
isAnonymous: auth.is_anonymous
|
|
1397
|
+
};
|
|
1398
|
+
}
|
|
1399
|
+
async getPartialUser(options) {
|
|
1400
|
+
switch (options.from) {
|
|
1401
|
+
case "token": {
|
|
1402
|
+
this._ensurePersistentTokenStore(options.tokenStore ?? this._tokenStoreInit);
|
|
1403
|
+
const session = await this._getSession(options.tokenStore);
|
|
1404
|
+
return this._getTokenPartialUserFromSession(session, options);
|
|
1405
|
+
}
|
|
1406
|
+
case "convex": {
|
|
1407
|
+
return await this._getPartialUserFromConvex(options.ctx);
|
|
1408
|
+
}
|
|
1409
|
+
default: {
|
|
1410
|
+
throw new Error(`Invalid 'from' option: ${options.from}`);
|
|
1411
|
+
}
|
|
1412
|
+
}
|
|
1413
|
+
}
|
|
1414
|
+
usePartialUser(options) {
|
|
1415
|
+
switch (options.from) {
|
|
1416
|
+
case "token": {
|
|
1417
|
+
this._ensurePersistentTokenStore(options.tokenStore ?? this._tokenStoreInit);
|
|
1418
|
+
const session = this._useSession(options.tokenStore);
|
|
1419
|
+
return this._getTokenPartialUserFromSession(session, options);
|
|
1420
|
+
}
|
|
1421
|
+
case "convex": {
|
|
1422
|
+
const result = (0, import_common3.useAsyncCache)(this._convexPartialUserCache, [options.ctx], "usePartialUser(convex)");
|
|
1423
|
+
return result;
|
|
1424
|
+
}
|
|
1425
|
+
default: {
|
|
1426
|
+
throw new Error(`Invalid 'from' option: ${options.from}`);
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
getConvexClientAuth(options) {
|
|
1431
|
+
return async (args) => {
|
|
1432
|
+
const session = await this._getSession(options.tokenStore);
|
|
1433
|
+
if (!args.forceRefreshToken) {
|
|
1434
|
+
const tokens2 = await session.getOrFetchLikelyValidTokens(2e4);
|
|
1435
|
+
return tokens2?.accessToken.token ?? null;
|
|
1436
|
+
}
|
|
1437
|
+
const tokens = await session.fetchNewTokens();
|
|
1438
|
+
return tokens?.accessToken.token ?? null;
|
|
1439
|
+
};
|
|
1440
|
+
}
|
|
1441
|
+
async getConvexHttpClientAuth(options) {
|
|
1442
|
+
const session = await this._getSession(options.tokenStore);
|
|
1443
|
+
const tokens = await session.getOrFetchLikelyValidTokens(2e4);
|
|
1444
|
+
return tokens?.accessToken.token ?? (0, import_errors.throwErr)("No access token available");
|
|
1445
|
+
}
|
|
1365
1446
|
async _updateClientUser(update, session) {
|
|
1366
1447
|
const res = await this._interface.updateClientUser((0, import_users.userUpdateOptionsToCrud)(update), session);
|
|
1367
1448
|
await this._refreshUser(session);
|