@robelest/convex-auth 0.0.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.
Files changed (280) hide show
  1. package/README.md +6 -0
  2. package/dist/bin.cjs +27733 -0
  3. package/dist/client/index.d.ts +49 -0
  4. package/dist/client/index.d.ts.map +1 -0
  5. package/dist/client/index.js +283 -0
  6. package/dist/client/index.js.map +1 -0
  7. package/dist/component/_generated/api.d.ts +36 -0
  8. package/dist/component/_generated/api.d.ts.map +1 -0
  9. package/dist/component/_generated/api.js +31 -0
  10. package/dist/component/_generated/api.js.map +1 -0
  11. package/dist/component/_generated/component.d.ts +295 -0
  12. package/dist/component/_generated/component.d.ts.map +1 -0
  13. package/dist/component/_generated/component.js +11 -0
  14. package/dist/component/_generated/component.js.map +1 -0
  15. package/dist/component/_generated/dataModel.d.ts +46 -0
  16. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  17. package/dist/component/_generated/dataModel.js +11 -0
  18. package/dist/component/_generated/dataModel.js.map +1 -0
  19. package/dist/component/_generated/server.d.ts +121 -0
  20. package/dist/component/_generated/server.d.ts.map +1 -0
  21. package/dist/component/_generated/server.js +78 -0
  22. package/dist/component/_generated/server.js.map +1 -0
  23. package/dist/component/convex.config.d.ts +3 -0
  24. package/dist/component/convex.config.d.ts.map +1 -0
  25. package/dist/component/convex.config.js +4 -0
  26. package/dist/component/convex.config.js.map +1 -0
  27. package/dist/component/index.d.ts +15 -0
  28. package/dist/component/index.d.ts.map +1 -0
  29. package/dist/component/index.js +13 -0
  30. package/dist/component/index.js.map +1 -0
  31. package/dist/component/public.d.ts +450 -0
  32. package/dist/component/public.d.ts.map +1 -0
  33. package/dist/component/public.js +528 -0
  34. package/dist/component/public.js.map +1 -0
  35. package/dist/component/schema.d.ts +107 -0
  36. package/dist/component/schema.d.ts.map +1 -0
  37. package/dist/component/schema.js +26 -0
  38. package/dist/component/schema.js.map +1 -0
  39. package/dist/providers/Anonymous.d.ts +50 -0
  40. package/dist/providers/Anonymous.d.ts.map +1 -0
  41. package/dist/providers/Anonymous.js +39 -0
  42. package/dist/providers/Anonymous.js.map +1 -0
  43. package/dist/providers/ConvexCredentials.d.ts +88 -0
  44. package/dist/providers/ConvexCredentials.d.ts.map +1 -0
  45. package/dist/providers/ConvexCredentials.js +37 -0
  46. package/dist/providers/ConvexCredentials.js.map +1 -0
  47. package/dist/providers/Email.d.ts +33 -0
  48. package/dist/providers/Email.d.ts.map +1 -0
  49. package/dist/providers/Email.js +50 -0
  50. package/dist/providers/Email.js.map +1 -0
  51. package/dist/providers/Password.d.ts +95 -0
  52. package/dist/providers/Password.d.ts.map +1 -0
  53. package/dist/providers/Password.js +174 -0
  54. package/dist/providers/Password.js.map +1 -0
  55. package/dist/providers/Phone.d.ts +22 -0
  56. package/dist/providers/Phone.d.ts.map +1 -0
  57. package/dist/providers/Phone.js +37 -0
  58. package/dist/providers/Phone.js.map +1 -0
  59. package/dist/server/convex_types.d.ts +17 -0
  60. package/dist/server/convex_types.d.ts.map +1 -0
  61. package/dist/server/convex_types.js +2 -0
  62. package/dist/server/convex_types.js.map +1 -0
  63. package/dist/server/cookies.d.ts +35 -0
  64. package/dist/server/cookies.d.ts.map +1 -0
  65. package/dist/server/cookies.js +34 -0
  66. package/dist/server/cookies.js.map +1 -0
  67. package/dist/server/implementation/db.d.ts +80 -0
  68. package/dist/server/implementation/db.d.ts.map +1 -0
  69. package/dist/server/implementation/db.js +59 -0
  70. package/dist/server/implementation/db.js.map +1 -0
  71. package/dist/server/implementation/index.d.ts +370 -0
  72. package/dist/server/implementation/index.d.ts.map +1 -0
  73. package/dist/server/implementation/index.js +521 -0
  74. package/dist/server/implementation/index.js.map +1 -0
  75. package/dist/server/implementation/mutations/createAccountFromCredentials.d.ts +33 -0
  76. package/dist/server/implementation/mutations/createAccountFromCredentials.d.ts.map +1 -0
  77. package/dist/server/implementation/mutations/createAccountFromCredentials.js +71 -0
  78. package/dist/server/implementation/mutations/createAccountFromCredentials.js.map +1 -0
  79. package/dist/server/implementation/mutations/createVerificationCode.d.ts +25 -0
  80. package/dist/server/implementation/mutations/createVerificationCode.d.ts.map +1 -0
  81. package/dist/server/implementation/mutations/createVerificationCode.js +84 -0
  82. package/dist/server/implementation/mutations/createVerificationCode.js.map +1 -0
  83. package/dist/server/implementation/mutations/index.d.ts +304 -0
  84. package/dist/server/implementation/mutations/index.d.ts.map +1 -0
  85. package/dist/server/implementation/mutations/index.js +108 -0
  86. package/dist/server/implementation/mutations/index.js.map +1 -0
  87. package/dist/server/implementation/mutations/invalidateSessions.d.ts +13 -0
  88. package/dist/server/implementation/mutations/invalidateSessions.d.ts.map +1 -0
  89. package/dist/server/implementation/mutations/invalidateSessions.js +35 -0
  90. package/dist/server/implementation/mutations/invalidateSessions.js.map +1 -0
  91. package/dist/server/implementation/mutations/modifyAccount.d.ts +23 -0
  92. package/dist/server/implementation/mutations/modifyAccount.d.ts.map +1 -0
  93. package/dist/server/implementation/mutations/modifyAccount.js +48 -0
  94. package/dist/server/implementation/mutations/modifyAccount.js.map +1 -0
  95. package/dist/server/implementation/mutations/refreshSession.d.ts +16 -0
  96. package/dist/server/implementation/mutations/refreshSession.d.ts.map +1 -0
  97. package/dist/server/implementation/mutations/refreshSession.js +116 -0
  98. package/dist/server/implementation/mutations/refreshSession.js.map +1 -0
  99. package/dist/server/implementation/mutations/retrieveAccountWithCredentials.d.ts +27 -0
  100. package/dist/server/implementation/mutations/retrieveAccountWithCredentials.d.ts.map +1 -0
  101. package/dist/server/implementation/mutations/retrieveAccountWithCredentials.js +55 -0
  102. package/dist/server/implementation/mutations/retrieveAccountWithCredentials.js.map +1 -0
  103. package/dist/server/implementation/mutations/signIn.d.ts +17 -0
  104. package/dist/server/implementation/mutations/signIn.d.ts.map +1 -0
  105. package/dist/server/implementation/mutations/signIn.js +26 -0
  106. package/dist/server/implementation/mutations/signIn.js.map +1 -0
  107. package/dist/server/implementation/mutations/signOut.d.ts +11 -0
  108. package/dist/server/implementation/mutations/signOut.d.ts.map +1 -0
  109. package/dist/server/implementation/mutations/signOut.js +24 -0
  110. package/dist/server/implementation/mutations/signOut.js.map +1 -0
  111. package/dist/server/implementation/mutations/userOAuth.d.ts +19 -0
  112. package/dist/server/implementation/mutations/userOAuth.d.ts.map +1 -0
  113. package/dist/server/implementation/mutations/userOAuth.js +84 -0
  114. package/dist/server/implementation/mutations/userOAuth.js.map +1 -0
  115. package/dist/server/implementation/mutations/verifier.d.ts +8 -0
  116. package/dist/server/implementation/mutations/verifier.d.ts.map +1 -0
  117. package/dist/server/implementation/mutations/verifier.js +19 -0
  118. package/dist/server/implementation/mutations/verifier.js.map +1 -0
  119. package/dist/server/implementation/mutations/verifierSignature.d.ts +15 -0
  120. package/dist/server/implementation/mutations/verifierSignature.d.ts.map +1 -0
  121. package/dist/server/implementation/mutations/verifierSignature.js +29 -0
  122. package/dist/server/implementation/mutations/verifierSignature.js.map +1 -0
  123. package/dist/server/implementation/mutations/verifyCodeAndSignIn.d.ts +21 -0
  124. package/dist/server/implementation/mutations/verifyCodeAndSignIn.d.ts.map +1 -0
  125. package/dist/server/implementation/mutations/verifyCodeAndSignIn.js +127 -0
  126. package/dist/server/implementation/mutations/verifyCodeAndSignIn.js.map +1 -0
  127. package/dist/server/implementation/provider.d.ts +6 -0
  128. package/dist/server/implementation/provider.d.ts.map +1 -0
  129. package/dist/server/implementation/provider.js +21 -0
  130. package/dist/server/implementation/provider.js.map +1 -0
  131. package/dist/server/implementation/rateLimit.d.ts +6 -0
  132. package/dist/server/implementation/rateLimit.d.ts.map +1 -0
  133. package/dist/server/implementation/rateLimit.js +76 -0
  134. package/dist/server/implementation/rateLimit.js.map +1 -0
  135. package/dist/server/implementation/redirects.d.ts +6 -0
  136. package/dist/server/implementation/redirects.d.ts.map +1 -0
  137. package/dist/server/implementation/redirects.js +40 -0
  138. package/dist/server/implementation/redirects.js.map +1 -0
  139. package/dist/server/implementation/refreshTokens.d.ts +40 -0
  140. package/dist/server/implementation/refreshTokens.d.ts.map +1 -0
  141. package/dist/server/implementation/refreshTokens.js +160 -0
  142. package/dist/server/implementation/refreshTokens.js.map +1 -0
  143. package/dist/server/implementation/sessions.d.ts +43 -0
  144. package/dist/server/implementation/sessions.d.ts.map +1 -0
  145. package/dist/server/implementation/sessions.js +94 -0
  146. package/dist/server/implementation/sessions.js.map +1 -0
  147. package/dist/server/implementation/signIn.d.ts +31 -0
  148. package/dist/server/implementation/signIn.d.ts.map +1 -0
  149. package/dist/server/implementation/signIn.js +148 -0
  150. package/dist/server/implementation/signIn.js.map +1 -0
  151. package/dist/server/implementation/tokens.d.ts +7 -0
  152. package/dist/server/implementation/tokens.d.ts.map +1 -0
  153. package/dist/server/implementation/tokens.js +18 -0
  154. package/dist/server/implementation/tokens.js.map +1 -0
  155. package/dist/server/implementation/types.d.ts +288 -0
  156. package/dist/server/implementation/types.d.ts.map +1 -0
  157. package/dist/server/implementation/types.js +182 -0
  158. package/dist/server/implementation/types.js.map +1 -0
  159. package/dist/server/implementation/users.d.ts +27 -0
  160. package/dist/server/implementation/users.d.ts.map +1 -0
  161. package/dist/server/implementation/users.js +181 -0
  162. package/dist/server/implementation/users.js.map +1 -0
  163. package/dist/server/implementation/utils.d.ts +17 -0
  164. package/dist/server/implementation/utils.d.ts.map +1 -0
  165. package/dist/server/implementation/utils.js +72 -0
  166. package/dist/server/implementation/utils.js.map +1 -0
  167. package/dist/server/index.d.ts +17 -0
  168. package/dist/server/index.d.ts.map +1 -0
  169. package/dist/server/index.js +54 -0
  170. package/dist/server/index.js.map +1 -0
  171. package/dist/server/oauth/authorizationUrl.d.ts +13 -0
  172. package/dist/server/oauth/authorizationUrl.d.ts.map +1 -0
  173. package/dist/server/oauth/authorizationUrl.js +91 -0
  174. package/dist/server/oauth/authorizationUrl.js.map +1 -0
  175. package/dist/server/oauth/callback.d.ts +19 -0
  176. package/dist/server/oauth/callback.d.ts.map +1 -0
  177. package/dist/server/oauth/callback.js +173 -0
  178. package/dist/server/oauth/callback.js.map +1 -0
  179. package/dist/server/oauth/checks.d.ts +52 -0
  180. package/dist/server/oauth/checks.d.ts.map +1 -0
  181. package/dist/server/oauth/checks.js +106 -0
  182. package/dist/server/oauth/checks.js.map +1 -0
  183. package/dist/server/oauth/convexAuth.d.ts +12 -0
  184. package/dist/server/oauth/convexAuth.d.ts.map +1 -0
  185. package/dist/server/oauth/convexAuth.js +137 -0
  186. package/dist/server/oauth/convexAuth.js.map +1 -0
  187. package/dist/server/oauth/lib/utils/customFetch.d.ts +9 -0
  188. package/dist/server/oauth/lib/utils/customFetch.d.ts.map +1 -0
  189. package/dist/server/oauth/lib/utils/customFetch.js +11 -0
  190. package/dist/server/oauth/lib/utils/customFetch.js.map +1 -0
  191. package/dist/server/oauth/lib/utils/providers.d.ts +3 -0
  192. package/dist/server/oauth/lib/utils/providers.d.ts.map +1 -0
  193. package/dist/server/oauth/lib/utils/providers.js +7 -0
  194. package/dist/server/oauth/lib/utils/providers.js.map +1 -0
  195. package/dist/server/oauth/providers/oauth.d.ts +43 -0
  196. package/dist/server/oauth/providers/oauth.d.ts.map +1 -0
  197. package/dist/server/oauth/providers/oauth.js +3 -0
  198. package/dist/server/oauth/providers/oauth.js.map +1 -0
  199. package/dist/server/oauth/types.d.ts +24 -0
  200. package/dist/server/oauth/types.d.ts.map +1 -0
  201. package/dist/server/oauth/types.js +5 -0
  202. package/dist/server/oauth/types.js.map +1 -0
  203. package/dist/server/provider_utils.d.ts +76 -0
  204. package/dist/server/provider_utils.d.ts.map +1 -0
  205. package/dist/server/provider_utils.js +177 -0
  206. package/dist/server/provider_utils.js.map +1 -0
  207. package/dist/server/types.d.ts +412 -0
  208. package/dist/server/types.d.ts.map +1 -0
  209. package/dist/server/types.js +2 -0
  210. package/dist/server/types.js.map +1 -0
  211. package/dist/server/utils.d.ts +3 -0
  212. package/dist/server/utils.d.ts.map +1 -0
  213. package/dist/server/utils.js +11 -0
  214. package/dist/server/utils.js.map +1 -0
  215. package/package.json +126 -0
  216. package/providers/Anonymous/package.json +6 -0
  217. package/providers/ConvexCredentials/package.json +6 -0
  218. package/providers/Email/package.json +6 -0
  219. package/providers/Password/package.json +6 -0
  220. package/providers/Phone/package.json +6 -0
  221. package/server/package.json +6 -0
  222. package/src/cli/command.ts +69 -0
  223. package/src/cli/generateKeys.ts +20 -0
  224. package/src/cli/index.ts +840 -0
  225. package/src/client/index.ts +415 -0
  226. package/src/component/_generated/api.ts +52 -0
  227. package/src/component/_generated/component.ts +586 -0
  228. package/src/component/_generated/dataModel.ts +60 -0
  229. package/src/component/_generated/server.ts +156 -0
  230. package/src/component/convex.config.ts +5 -0
  231. package/src/component/index.ts +40 -0
  232. package/src/component/public.ts +607 -0
  233. package/src/component/schema.ts +35 -0
  234. package/src/providers/Anonymous.ts +79 -0
  235. package/src/providers/ConvexCredentials.ts +108 -0
  236. package/src/providers/Email.ts +60 -0
  237. package/src/providers/Password.ts +253 -0
  238. package/src/providers/Phone.ts +46 -0
  239. package/src/server/convex_types.ts +55 -0
  240. package/src/server/cookies.ts +42 -0
  241. package/src/server/implementation/db.ts +125 -0
  242. package/src/server/implementation/index.ts +815 -0
  243. package/src/server/implementation/mutations/createAccountFromCredentials.ts +113 -0
  244. package/src/server/implementation/mutations/createVerificationCode.ts +139 -0
  245. package/src/server/implementation/mutations/index.ts +157 -0
  246. package/src/server/implementation/mutations/invalidateSessions.ts +47 -0
  247. package/src/server/implementation/mutations/modifyAccount.ts +65 -0
  248. package/src/server/implementation/mutations/refreshSession.ts +188 -0
  249. package/src/server/implementation/mutations/retrieveAccountWithCredentials.ts +87 -0
  250. package/src/server/implementation/mutations/signIn.ts +51 -0
  251. package/src/server/implementation/mutations/signOut.ts +38 -0
  252. package/src/server/implementation/mutations/userOAuth.ts +112 -0
  253. package/src/server/implementation/mutations/verifier.ts +29 -0
  254. package/src/server/implementation/mutations/verifierSignature.ts +44 -0
  255. package/src/server/implementation/mutations/verifyCodeAndSignIn.ts +205 -0
  256. package/src/server/implementation/provider.ts +38 -0
  257. package/src/server/implementation/rateLimit.ts +105 -0
  258. package/src/server/implementation/redirects.ts +58 -0
  259. package/src/server/implementation/refreshTokens.ts +221 -0
  260. package/src/server/implementation/sessions.ts +155 -0
  261. package/src/server/implementation/signIn.ts +253 -0
  262. package/src/server/implementation/tokens.ts +29 -0
  263. package/src/server/implementation/types.ts +220 -0
  264. package/src/server/implementation/users.ts +286 -0
  265. package/src/server/implementation/utils.ts +91 -0
  266. package/src/server/index.ts +74 -0
  267. package/src/server/oauth/NOTICE.txt +21 -0
  268. package/src/server/oauth/README.md +7 -0
  269. package/src/server/oauth/authorizationUrl.ts +113 -0
  270. package/src/server/oauth/callback.ts +243 -0
  271. package/src/server/oauth/checks.ts +136 -0
  272. package/src/server/oauth/convexAuth.ts +168 -0
  273. package/src/server/oauth/lib/utils/customFetch.ts +18 -0
  274. package/src/server/oauth/lib/utils/providers.ts +12 -0
  275. package/src/server/oauth/providers/oauth.ts +56 -0
  276. package/src/server/oauth/types.ts +60 -0
  277. package/src/server/provider_utils.ts +222 -0
  278. package/src/server/types.ts +470 -0
  279. package/src/server/utils.ts +12 -0
  280. package/src/test.ts +24 -0
@@ -0,0 +1,370 @@
1
+ import { Auth, DocumentByName, GenericActionCtx, GenericDataModel, HttpRouter, WithoutSystemFields } from "convex/server";
2
+ import { GenericId, Value } from "convex/values";
3
+ import { FunctionReferenceFromExport, GenericDoc } from "../convex_types.js";
4
+ import { AuthProviderConfig, ConvexAuthConfig, GenericActionCtxWithAuthConfig } from "../types.js";
5
+ import { Tokens } from "./types.js";
6
+ export { authTables, Doc, Tokens } from "./types.js";
7
+ export { getAuthSessionId } from "./sessions.js";
8
+ /**
9
+ * The type of the signIn Convex Action returned from the auth() helper.
10
+ *
11
+ * This type is exported for implementors of other client integrations.
12
+ * However it is not stable, and may change until this library reaches 1.0.
13
+ */
14
+ export type SignInAction = FunctionReferenceFromExport<ReturnType<typeof Auth>["signIn"]>;
15
+ /**
16
+ * The type of the signOut Convex Action returned from the auth() helper.
17
+ *
18
+ * This type is exported for implementors of other client integrations.
19
+ * However it is not stable, and may change until this library reaches 1.0.
20
+ */
21
+ export type SignOutAction = FunctionReferenceFromExport<ReturnType<typeof Auth>["signOut"]>;
22
+ /**
23
+ * Configure the Convex Auth library. Returns an object with
24
+ * functions and `auth` helper. You must export the functions
25
+ * from `convex/auth.ts` to make them callable:
26
+ *
27
+ * ```ts filename="convex/auth.ts"
28
+ * import { Auth } from "@robelest/convex-auth/component";
29
+ *
30
+ * export const { auth, signIn, signOut, store } = Auth({
31
+ * providers: [],
32
+ * });
33
+ * ```
34
+ *
35
+ * @returns An object with fields you should reexport from your
36
+ * `convex/auth.ts` file.
37
+ */
38
+ export declare function Auth(config_: ConvexAuthConfig): {
39
+ /**
40
+ * Helper for configuring HTTP actions.
41
+ */
42
+ auth: {
43
+ user: {
44
+ current: (ctx: {
45
+ auth: Auth;
46
+ }) => Promise<GenericId<"user"> | null>;
47
+ require: (ctx: {
48
+ auth: Auth;
49
+ }) => Promise<GenericId<"user">>;
50
+ get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery">, userId: string) => Promise<any>;
51
+ viewer: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery"> & {
52
+ auth: Auth;
53
+ }) => Promise<any>;
54
+ };
55
+ organization: {
56
+ create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: Record<string, unknown>) => Promise<string>;
57
+ get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, organizationId: string) => Promise<any>;
58
+ list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, ownerUserId?: string) => Promise<any>;
59
+ update: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, organizationId: string, data: Record<string, unknown>) => Promise<void>;
60
+ delete: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, organizationId: string) => Promise<void>;
61
+ member: {
62
+ add: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: Record<string, unknown>) => Promise<string>;
63
+ remove: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, memberId: string) => Promise<void>;
64
+ list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, args: {
65
+ organizationId: string;
66
+ teamId?: string;
67
+ }) => Promise<any>;
68
+ role: {
69
+ set: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, memberId: string, role: string) => Promise<void>;
70
+ get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, memberId: string) => Promise<any>;
71
+ };
72
+ };
73
+ };
74
+ invite: {
75
+ create: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, data: Record<string, unknown>) => Promise<string>;
76
+ get: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, inviteId: string) => Promise<any>;
77
+ list: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, args: {
78
+ organizationId?: string;
79
+ status?: string;
80
+ }) => Promise<any>;
81
+ accept: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, inviteId: string) => Promise<void>;
82
+ revoke: (ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, inviteId: string) => Promise<void>;
83
+ };
84
+ /**
85
+ * Add HTTP actions for JWT verification and OAuth sign-in.
86
+ *
87
+ * ```ts
88
+ * import { httpRouter } from "convex/server";
89
+ * import { auth } from "./auth.js";
90
+ *
91
+ * const http = httpRouter();
92
+ *
93
+ * auth.addHttpRoutes(http);
94
+ *
95
+ * export default http;
96
+ * ```
97
+ *
98
+ * The following routes are handled always:
99
+ *
100
+ * - `/.well-known/openid-configuration`
101
+ * - `/.well-known/jwks.json`
102
+ *
103
+ * The following routes are handled if OAuth is configured:
104
+ *
105
+ * - `/api/auth/signin/*`
106
+ * - `/api/auth/callback/*`
107
+ *
108
+ * @param http your HTTP router
109
+ */
110
+ addHttpRoutes: (http: HttpRouter) => void;
111
+ };
112
+ /**
113
+ * Action called by the client to sign the user in.
114
+ *
115
+ * Also used for refreshing the session.
116
+ */
117
+ signIn: import("convex/server").RegisteredAction<"public", {
118
+ provider?: string | undefined;
119
+ verifier?: string | undefined;
120
+ refreshToken?: string | undefined;
121
+ params?: any;
122
+ calledBy?: string | undefined;
123
+ }, Promise<{
124
+ redirect?: string;
125
+ verifier?: string;
126
+ tokens?: Tokens | null;
127
+ started?: boolean;
128
+ }>>;
129
+ /**
130
+ * Action called by the client to invalidate the current session.
131
+ */
132
+ signOut: import("convex/server").RegisteredAction<"public", {}, Promise<void>>;
133
+ /**
134
+ * Internal mutation used by the library to read and write
135
+ * to the database during signin and signout.
136
+ */
137
+ store: import("convex/server").RegisteredMutation<"internal", {
138
+ args: {
139
+ sessionId?: string | undefined;
140
+ type: "signIn";
141
+ userId: string;
142
+ generateTokens: boolean;
143
+ } | {
144
+ type: "signOut";
145
+ } | {
146
+ type: "refreshSession";
147
+ refreshToken: string;
148
+ } | {
149
+ provider?: string | undefined;
150
+ verifier?: string | undefined;
151
+ type: "verifyCodeAndSignIn";
152
+ generateTokens: boolean;
153
+ params: any;
154
+ allowExtraProviders: boolean;
155
+ } | {
156
+ type: "verifier";
157
+ } | {
158
+ type: "verifierSignature";
159
+ verifier: string;
160
+ signature: string;
161
+ } | {
162
+ type: "userOAuth";
163
+ profile: any;
164
+ provider: string;
165
+ providerAccountId: string;
166
+ signature: string;
167
+ } | {
168
+ email?: string | undefined;
169
+ phone?: string | undefined;
170
+ accountId?: string | undefined;
171
+ type: "createVerificationCode";
172
+ expirationTime: number;
173
+ provider: string;
174
+ code: string;
175
+ allowExtraProviders: boolean;
176
+ } | {
177
+ shouldLinkViaEmail?: boolean | undefined;
178
+ shouldLinkViaPhone?: boolean | undefined;
179
+ type: "createAccountFromCredentials";
180
+ profile: any;
181
+ account: {
182
+ secret?: string | undefined;
183
+ id: string;
184
+ };
185
+ provider: string;
186
+ } | {
187
+ type: "retrieveAccountWithCredentials";
188
+ account: {
189
+ secret?: string | undefined;
190
+ id: string;
191
+ };
192
+ provider: string;
193
+ } | {
194
+ type: "modifyAccount";
195
+ account: {
196
+ id: string;
197
+ secret: string;
198
+ };
199
+ provider: string;
200
+ } | {
201
+ except?: string[] | undefined;
202
+ type: "invalidateSessions";
203
+ userId: string;
204
+ };
205
+ }, Promise<string | void | {
206
+ userId: GenericId<"user">;
207
+ sessionId: GenericId<"session">;
208
+ } | {
209
+ token: string;
210
+ refreshToken: string;
211
+ } | {
212
+ account: import("./types.js").Doc<"account">;
213
+ user: import("./types.js").Doc<"user">;
214
+ } | null>>;
215
+ };
216
+ /**
217
+ * Return the currently signed-in user's ID.
218
+ *
219
+ * ```ts filename="convex/myFunctions.tsx"
220
+ * import { mutation } from "./_generated/server";
221
+ * import { getAuthUserId } from "@robelest/convex-auth/component";
222
+ *
223
+ * export const doSomething = mutation({
224
+ * args: {/* ... *\/},
225
+ * handler: async (ctx, args) => {
226
+ * const userId = await getAuthUserId(ctx);
227
+ * if (userId === null) {
228
+ * throw new Error("Client is not authenticated!")
229
+ * }
230
+ * const user = await ctx.db.get(userId);
231
+ * // ...
232
+ * },
233
+ * });
234
+ * ```
235
+ *
236
+ * @param ctx query, mutation or action `ctx`
237
+ * @returns the user ID or `null` if the client isn't authenticated
238
+ */
239
+ export declare function getAuthUserId(ctx: {
240
+ auth: Auth;
241
+ }): Promise<GenericId<"user"> | null>;
242
+ /**
243
+ * Use this function from a
244
+ * [`ConvexCredentials`](https://labs.convex.dev/auth/api_reference/providers/ConvexCredentials)
245
+ * provider to create an account and a user with a unique account "id" (OAuth
246
+ * provider ID, email address, phone number, username etc.).
247
+ *
248
+ * @returns user ID if it successfully creates the account
249
+ * or throws an error.
250
+ */
251
+ export declare function createAccount<DataModel extends GenericDataModel = GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
252
+ /**
253
+ * The provider ID (like "password"), used to disambiguate accounts.
254
+ *
255
+ * It is also used to configure account secret hashing via the provider's
256
+ * `crypto` option.
257
+ */
258
+ provider: string;
259
+ account: {
260
+ /**
261
+ * The unique external ID for the account, for example email address.
262
+ */
263
+ id: string;
264
+ /**
265
+ * The secret credential to store for this account, if given.
266
+ */
267
+ secret?: string;
268
+ };
269
+ /**
270
+ * The profile data to store for the user.
271
+ * These must fit the `users` table schema.
272
+ */
273
+ profile: WithoutSystemFields<DocumentByName<DataModel, "user">>;
274
+ /**
275
+ * If `true`, the account will be linked to an existing user
276
+ * with the same verified email address.
277
+ * This is only safe if the returned account's email is verified
278
+ * before the user is allowed to sign in with it.
279
+ */
280
+ shouldLinkViaEmail?: boolean;
281
+ /**
282
+ * If `true`, the account will be linked to an existing user
283
+ * with the same verified phone number.
284
+ * This is only safe if the returned account's phone is verified
285
+ * before the user is allowed to sign in with it.
286
+ */
287
+ shouldLinkViaPhone?: boolean;
288
+ }): Promise<{
289
+ account: GenericDoc<DataModel, "account">;
290
+ user: GenericDoc<DataModel, "user">;
291
+ }>;
292
+ /**
293
+ * Use this function from a
294
+ * [`ConvexCredentials`](https://labs.convex.dev/auth/api_reference/providers/ConvexCredentials)
295
+ * provider to retrieve a user given the account provider ID and
296
+ * the provider-specific account ID.
297
+ *
298
+ * @returns the retrieved user document, or `null` if there is no account
299
+ * for given account ID or throws if the provided
300
+ * secret does not match.
301
+ */
302
+ export declare function retrieveAccount<DataModel extends GenericDataModel = GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
303
+ /**
304
+ * The provider ID (like "password"), used to disambiguate accounts.
305
+ *
306
+ * It is also used to configure account secret hashing via the provider's
307
+ * `crypto` option.
308
+ */
309
+ provider: string;
310
+ account: {
311
+ /**
312
+ * The unique external ID for the account, for example email address.
313
+ */
314
+ id: string;
315
+ /**
316
+ * The secret that should match the stored credential, if given.
317
+ */
318
+ secret?: string;
319
+ };
320
+ }): Promise<{
321
+ account: GenericDoc<DataModel, "account">;
322
+ user: GenericDoc<DataModel, "user">;
323
+ }>;
324
+ /**
325
+ * Use this function to modify the account credentials
326
+ * from a [`ConvexCredentials`](https://labs.convex.dev/auth/api_reference/providers/ConvexCredentials)
327
+ * provider.
328
+ */
329
+ export declare function modifyAccountCredentials<DataModel extends GenericDataModel = GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
330
+ /**
331
+ * The provider ID (like "password"), used to disambiguate accounts.
332
+ *
333
+ * It is also used to configure account secret hashing via the `crypto` option.
334
+ */
335
+ provider: string;
336
+ account: {
337
+ /**
338
+ * The unique external ID for the account, for example email address.
339
+ */
340
+ id: string;
341
+ /**
342
+ * The new secret credential to store for this account.
343
+ */
344
+ secret: string;
345
+ };
346
+ }): Promise<void>;
347
+ /**
348
+ * Use this function to invalidate existing sessions.
349
+ */
350
+ export declare function invalidateSessions<DataModel extends GenericDataModel = GenericDataModel>(ctx: GenericActionCtx<DataModel>, args: {
351
+ userId: GenericId<"user">;
352
+ except?: GenericId<"session">[];
353
+ }): Promise<void>;
354
+ /**
355
+ * Use this function from a
356
+ * [`ConvexCredentials`](https://labs.convex.dev/auth/api_reference/providers/ConvexCredentials)
357
+ * provider to sign in the user via another provider (usually
358
+ * for email verification on sign up or password reset).
359
+ *
360
+ * Returns the user ID if the sign can proceed,
361
+ * or `null`.
362
+ */
363
+ export declare function signInViaProvider<DataModel extends GenericDataModel = GenericDataModel>(ctx: GenericActionCtxWithAuthConfig<DataModel>, provider: AuthProviderConfig, args: {
364
+ accountId?: GenericId<"account">;
365
+ params?: Record<string, Value | undefined>;
366
+ }): Promise<{
367
+ userId: GenericId<"user">;
368
+ sessionId: GenericId<"session">;
369
+ } | null>;
370
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/implementation/index.ts"],"names":[],"mappings":"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"}