@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,49 @@
1
+ import { FunctionReference, OptionalRestArgs } from "convex/server";
2
+ import { Value } from "convex/values";
3
+ type AuthActionCaller = {
4
+ authenticatedCall<Action extends FunctionReference<"action", "public">>(action: Action, ...args: OptionalRestArgs<Action>): Promise<Action["_returnType"]>;
5
+ unauthenticatedCall<Action extends FunctionReference<"action", "public">>(action: Action, ...args: OptionalRestArgs<Action>): Promise<Action["_returnType"]>;
6
+ verbose?: boolean;
7
+ logger?: {
8
+ logVerbose?: (message: string) => void;
9
+ };
10
+ };
11
+ export interface TokenStorage {
12
+ getItem(key: string): string | null | undefined | Promise<string | null | undefined>;
13
+ setItem(key: string, value: string): void | Promise<void>;
14
+ removeItem(key: string): void | Promise<void>;
15
+ }
16
+ export type AuthSession = {
17
+ token: string;
18
+ refreshToken: string;
19
+ };
20
+ export type SignInResult = {
21
+ signingIn: boolean;
22
+ redirect?: URL;
23
+ };
24
+ export type AuthSnapshot = {
25
+ isLoading: boolean;
26
+ isAuthenticated: boolean;
27
+ token: string | null;
28
+ };
29
+ export type AuthClientOptions = {
30
+ transport: AuthActionCaller;
31
+ storage?: TokenStorage | null;
32
+ storageNamespace: string;
33
+ replaceURL?: (relativeUrl: string) => void | Promise<void>;
34
+ shouldHandleCode?: (() => boolean) | boolean;
35
+ onChange?: () => Promise<unknown>;
36
+ };
37
+ export declare function createAuthClient(options: AuthClientOptions): {
38
+ signIn: (provider?: string, args?: FormData | Record<string, Value>) => Promise<SignInResult>;
39
+ signOut: () => Promise<void>;
40
+ fetchAccessToken: ({ forceRefreshToken, }: {
41
+ forceRefreshToken: boolean;
42
+ }) => Promise<string | null>;
43
+ handleCodeFlow: () => Promise<void>;
44
+ hydrateFromStorage: () => Promise<void>;
45
+ getSnapshot: () => AuthSnapshot;
46
+ subscribe: (cb: () => void) => () => boolean;
47
+ };
48
+ export {};
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMtC,KAAK,gBAAgB,GAAG;IACtB,iBAAiB,CAAC,MAAM,SAAS,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACpE,MAAM,EAAE,MAAM,EACd,GAAG,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,SAAS,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACtE,MAAM,EAAE,MAAM,EACd,GAAG,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACxC,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACnC,CAAC;AASF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB;wBAoI5C,MAAM,SACV,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KACtC,OAAO,CAAC,YAAY,CAAC;;+CAiDrB;QACD,iBAAiB,EAAE,OAAO,CAAC;KAC5B,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;uBAoDF,YAAY;oBAEb,MAAM,IAAI;EA8BlC"}
@@ -0,0 +1,283 @@
1
+ const VERIFIER_STORAGE_KEY = "__convexAuthOAuthVerifier";
2
+ const JWT_STORAGE_KEY = "__convexAuthJWT";
3
+ const REFRESH_TOKEN_STORAGE_KEY = "__convexAuthRefreshToken";
4
+ const RETRY_BACKOFF = [500, 2000];
5
+ const RETRY_JITTER = 100;
6
+ export function createAuthClient(options) {
7
+ const { transport, storage = typeof window === "undefined" ? null : window.localStorage, storageNamespace, replaceURL = (url) => {
8
+ if (typeof window !== "undefined") {
9
+ window.history.replaceState({}, "", url);
10
+ }
11
+ }, shouldHandleCode, onChange, } = options;
12
+ const escapedNamespace = storageNamespace.replace(/[^a-zA-Z0-9]/g, "");
13
+ const key = (name) => `${name}_${escapedNamespace}`;
14
+ const subscribers = new Set();
15
+ let token = null;
16
+ let isLoading = true;
17
+ let snapshot = {
18
+ isLoading,
19
+ isAuthenticated: false,
20
+ token,
21
+ };
22
+ let handlingCodeFlow = false;
23
+ const logVerbose = (message) => {
24
+ if (transport.verbose) {
25
+ transport.logger?.logVerbose?.(message);
26
+ console.debug(`${new Date().toISOString()} ${message}`);
27
+ }
28
+ };
29
+ const notify = () => {
30
+ for (const cb of subscribers)
31
+ cb();
32
+ };
33
+ const updateSnapshot = () => {
34
+ const nextSnapshot = {
35
+ isLoading,
36
+ isAuthenticated: token !== null,
37
+ token,
38
+ };
39
+ if (snapshot.isLoading === nextSnapshot.isLoading &&
40
+ snapshot.isAuthenticated === nextSnapshot.isAuthenticated &&
41
+ snapshot.token === nextSnapshot.token) {
42
+ return false;
43
+ }
44
+ snapshot = nextSnapshot;
45
+ return true;
46
+ };
47
+ const storageGet = async (name) => storage ? ((await storage.getItem(key(name))) ?? null) : null;
48
+ const storageSet = async (name, value) => {
49
+ if (storage)
50
+ await storage.setItem(key(name), value);
51
+ };
52
+ const storageRemove = async (name) => {
53
+ if (storage)
54
+ await storage.removeItem(key(name));
55
+ };
56
+ const setToken = async (args) => {
57
+ const wasAuthenticated = token !== null;
58
+ if (args.tokens === null) {
59
+ token = null;
60
+ if (args.shouldStore) {
61
+ await storageRemove(JWT_STORAGE_KEY);
62
+ await storageRemove(REFRESH_TOKEN_STORAGE_KEY);
63
+ }
64
+ }
65
+ else {
66
+ token = args.tokens.token;
67
+ if (args.shouldStore && "refreshToken" in args.tokens) {
68
+ await storageSet(JWT_STORAGE_KEY, args.tokens.token);
69
+ await storageSet(REFRESH_TOKEN_STORAGE_KEY, args.tokens.refreshToken);
70
+ }
71
+ }
72
+ if (wasAuthenticated !== (token !== null)) {
73
+ await onChange?.();
74
+ }
75
+ const hadPendingLoad = isLoading;
76
+ isLoading = false;
77
+ const changed = updateSnapshot();
78
+ if (hadPendingLoad || changed) {
79
+ notify();
80
+ }
81
+ };
82
+ const verifyCode = async (args) => {
83
+ let lastError;
84
+ let retry = 0;
85
+ while (retry < RETRY_BACKOFF.length) {
86
+ try {
87
+ return await transport.unauthenticatedCall("auth:signIn", "code" in args
88
+ ? { params: { code: args.code }, verifier: args.verifier }
89
+ : args);
90
+ }
91
+ catch (e) {
92
+ lastError = e;
93
+ const isNetworkError = e instanceof Error && /network/i.test(e.message || "");
94
+ if (!isNetworkError)
95
+ break;
96
+ const wait = RETRY_BACKOFF[retry] + RETRY_JITTER * Math.random();
97
+ retry++;
98
+ logVerbose(`verifyCode network retry ${retry}/${RETRY_BACKOFF.length} in ${wait}ms`);
99
+ await new Promise((resolve) => setTimeout(resolve, wait));
100
+ }
101
+ }
102
+ throw lastError;
103
+ };
104
+ const verifyCodeAndSetToken = async (args) => {
105
+ const { tokens } = await verifyCode(args);
106
+ await setToken({ shouldStore: true, tokens: tokens ?? null });
107
+ return tokens !== null;
108
+ };
109
+ const signIn = async (provider, args) => {
110
+ const params = args instanceof FormData
111
+ ? Array.from(args.entries()).reduce((acc, [k, v]) => {
112
+ acc[k] = v;
113
+ return acc;
114
+ }, {})
115
+ : args ?? {};
116
+ const verifier = (await storageGet(VERIFIER_STORAGE_KEY)) ?? undefined;
117
+ await storageRemove(VERIFIER_STORAGE_KEY);
118
+ const result = await transport.authenticatedCall("auth:signIn", { provider, params, verifier });
119
+ if (result.redirect !== undefined) {
120
+ const url = new URL(result.redirect);
121
+ await storageSet(VERIFIER_STORAGE_KEY, result.verifier);
122
+ if (typeof window !== "undefined") {
123
+ window.location.href = url.toString();
124
+ }
125
+ return { signingIn: false, redirect: url };
126
+ }
127
+ if (result.tokens !== undefined) {
128
+ await setToken({
129
+ shouldStore: true,
130
+ tokens: result.tokens ?? null,
131
+ });
132
+ return { signingIn: result.tokens !== null };
133
+ }
134
+ return { signingIn: false };
135
+ };
136
+ const signOut = async () => {
137
+ try {
138
+ await transport.authenticatedCall("auth:signOut");
139
+ }
140
+ catch {
141
+ // Already signed out is fine.
142
+ }
143
+ await setToken({ shouldStore: true, tokens: null });
144
+ };
145
+ const fetchAccessToken = async ({ forceRefreshToken, }) => {
146
+ if (!forceRefreshToken)
147
+ return token;
148
+ const tokenBeforeLockAcquisition = token;
149
+ return await browserMutex(REFRESH_TOKEN_STORAGE_KEY, async () => {
150
+ const tokenAfterLockAcquisition = token;
151
+ if (tokenAfterLockAcquisition !== tokenBeforeLockAcquisition) {
152
+ logVerbose(`fetchAccessToken using synchronized token, is null: ${tokenAfterLockAcquisition === null}`);
153
+ return tokenAfterLockAcquisition;
154
+ }
155
+ const refreshToken = (await storageGet(REFRESH_TOKEN_STORAGE_KEY)) ?? null;
156
+ if (!refreshToken) {
157
+ logVerbose("fetchAccessToken found no refresh token");
158
+ return null;
159
+ }
160
+ await verifyCodeAndSetToken({ refreshToken });
161
+ return token;
162
+ });
163
+ };
164
+ const handleCodeFlow = async () => {
165
+ if (typeof window === "undefined")
166
+ return;
167
+ if (handlingCodeFlow)
168
+ return;
169
+ const code = new URLSearchParams(window.location.search).get("code");
170
+ if (!code)
171
+ return;
172
+ const shouldRun = shouldHandleCode === undefined
173
+ ? true
174
+ : typeof shouldHandleCode === "function"
175
+ ? shouldHandleCode()
176
+ : shouldHandleCode;
177
+ if (!shouldRun)
178
+ return;
179
+ handlingCodeFlow = true;
180
+ const url = new URL(window.location.href);
181
+ url.searchParams.delete("code");
182
+ try {
183
+ await replaceURL(url.pathname + url.search + url.hash);
184
+ await signIn(undefined, { code });
185
+ }
186
+ finally {
187
+ handlingCodeFlow = false;
188
+ }
189
+ };
190
+ const hydrateFromStorage = async () => {
191
+ const storedToken = (await storageGet(JWT_STORAGE_KEY)) ?? null;
192
+ await setToken({
193
+ shouldStore: false,
194
+ tokens: storedToken === null ? null : { token: storedToken },
195
+ });
196
+ };
197
+ const getSnapshot = () => snapshot;
198
+ const subscribe = (cb) => {
199
+ subscribers.add(cb);
200
+ return () => subscribers.delete(cb);
201
+ };
202
+ if (typeof window !== "undefined") {
203
+ const onStorage = (event) => {
204
+ void (async () => {
205
+ if (event.key !== key(JWT_STORAGE_KEY)) {
206
+ return;
207
+ }
208
+ const value = event.newValue;
209
+ await setToken({
210
+ shouldStore: false,
211
+ tokens: value === null ? null : { token: value },
212
+ });
213
+ })();
214
+ };
215
+ window.addEventListener("storage", onStorage);
216
+ }
217
+ return {
218
+ signIn,
219
+ signOut,
220
+ fetchAccessToken,
221
+ handleCodeFlow,
222
+ hydrateFromStorage,
223
+ getSnapshot,
224
+ subscribe,
225
+ };
226
+ }
227
+ async function browserMutex(key, callback) {
228
+ const lockManager = globalThis?.navigator?.locks;
229
+ return lockManager !== undefined
230
+ ? await lockManager.request(key, callback)
231
+ : await manualMutex(key, callback);
232
+ }
233
+ function getMutexValue(key) {
234
+ if (globalThis.__convexAuthMutexes === undefined) {
235
+ globalThis.__convexAuthMutexes = {};
236
+ }
237
+ let mutex = globalThis.__convexAuthMutexes[key];
238
+ if (mutex === undefined) {
239
+ globalThis.__convexAuthMutexes[key] = {
240
+ currentlyRunning: null,
241
+ waiting: [],
242
+ };
243
+ }
244
+ mutex = globalThis.__convexAuthMutexes[key];
245
+ return mutex;
246
+ }
247
+ function setMutexValue(key, value) {
248
+ globalThis.__convexAuthMutexes[key] = value;
249
+ }
250
+ async function enqueueCallbackForMutex(key, callback) {
251
+ const mutex = getMutexValue(key);
252
+ if (mutex.currentlyRunning === null) {
253
+ setMutexValue(key, {
254
+ currentlyRunning: callback().finally(() => {
255
+ const nextCb = getMutexValue(key).waiting.shift();
256
+ getMutexValue(key).currentlyRunning = null;
257
+ setMutexValue(key, {
258
+ ...getMutexValue(key),
259
+ currentlyRunning: nextCb === undefined ? null : enqueueCallbackForMutex(key, nextCb),
260
+ });
261
+ }),
262
+ waiting: [],
263
+ });
264
+ }
265
+ else {
266
+ setMutexValue(key, {
267
+ ...mutex,
268
+ waiting: [...mutex.waiting, callback],
269
+ });
270
+ }
271
+ }
272
+ async function manualMutex(key, callback) {
273
+ const outerPromise = new Promise((resolve, reject) => {
274
+ const wrappedCallback = () => {
275
+ return callback()
276
+ .then((v) => resolve(v))
277
+ .catch((e) => reject(e));
278
+ };
279
+ void enqueueCallbackForMutex(key, wrappedCallback);
280
+ });
281
+ return outerPromise;
282
+ }
283
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Generated `api` utility.
3
+ *
4
+ * THIS CODE IS AUTOMATICALLY GENERATED.
5
+ *
6
+ * To regenerate, run `npx convex dev`.
7
+ * @module
8
+ */
9
+ import type * as index from "../index.js";
10
+ import type * as public_ from "../public.js";
11
+ import type { ApiFromModules, FilterApi, FunctionReference } from "convex/server";
12
+ declare const fullApi: ApiFromModules<{
13
+ index: typeof index;
14
+ public: typeof public_;
15
+ }>;
16
+ /**
17
+ * A utility for referencing Convex functions in your app's public API.
18
+ *
19
+ * Usage:
20
+ * ```js
21
+ * const myFunctionReference = api.myModule.myFunction;
22
+ * ```
23
+ */
24
+ export declare const api: FilterApi<typeof fullApi, FunctionReference<any, "public">>;
25
+ /**
26
+ * A utility for referencing Convex functions in your app's internal API.
27
+ *
28
+ * Usage:
29
+ * ```js
30
+ * const myFunctionReference = internal.myModule.myFunction;
31
+ * ```
32
+ */
33
+ export declare const internal: FilterApi<typeof fullApi, FunctionReference<any, "internal">>;
34
+ export declare const components: {};
35
+ export {};
36
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAGvB,QAAA,MAAM,OAAO,EAAE,cAAc,CAAC;IAC5B,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,MAAM,EAAE,OAAO,OAAO,CAAC;CACxB,CAAiB,CAAC;AAEnB;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,EAAE,SAAS,CACzB,OAAO,OAAO,EACd,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CACjB,CAAC;AAElB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,CAC9B,OAAO,OAAO,EACd,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CACnB,CAAC;AAElB,eAAO,MAAM,UAAU,EAAqC,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * Generated `api` utility.
4
+ *
5
+ * THIS CODE IS AUTOMATICALLY GENERATED.
6
+ *
7
+ * To regenerate, run `npx convex dev`.
8
+ * @module
9
+ */
10
+ import { anyApi, componentsGeneric } from "convex/server";
11
+ const fullApi = anyApi;
12
+ /**
13
+ * A utility for referencing Convex functions in your app's public API.
14
+ *
15
+ * Usage:
16
+ * ```js
17
+ * const myFunctionReference = api.myModule.myFunction;
18
+ * ```
19
+ */
20
+ export const api = anyApi;
21
+ /**
22
+ * A utility for referencing Convex functions in your app's internal API.
23
+ *
24
+ * Usage:
25
+ * ```js
26
+ * const myFunctionReference = internal.myModule.myFunction;
27
+ * ```
28
+ */
29
+ export const internal = anyApi;
30
+ export const components = componentsGeneric();
31
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;;;GAOG;AAUH,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,OAAO,GAGR,MAAa,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAGZ,MAAa,CAAC;AAElB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,MAAa,CAAC;AAElB,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,EAAmB,CAAC"}