@robelest/convex-auth 0.0.4-preview.0 → 0.0.4-preview.10
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/README.md +33 -2
- package/dist/client/index.d.ts +30 -28
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +410 -150
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +2 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +534 -81
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/convex.config.d.ts +2 -2
- package/dist/component/convex.config.d.ts.map +1 -1
- package/dist/component/functions.d.ts +25 -0
- package/dist/component/functions.d.ts.map +1 -0
- package/dist/component/functions.js +32 -0
- package/dist/component/functions.js.map +1 -0
- package/dist/component/providers/credentials.d.ts +2 -2
- package/dist/component/providers/credentials.d.ts.map +1 -1
- package/dist/component/providers/email.js +21 -7
- package/dist/component/providers/email.js.map +1 -1
- package/dist/component/public.d.ts +92 -837
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +610 -192
- package/dist/component/public.js.map +1 -1
- package/dist/component/schema.d.ts +116 -116
- package/dist/component/schema.js +48 -48
- package/dist/component/schema.js.map +1 -1
- package/dist/component/server/auth.d.ts +76 -67
- package/dist/component/server/auth.d.ts.map +1 -1
- package/dist/component/server/auth.js +3 -2
- package/dist/component/server/auth.js.map +1 -1
- package/dist/component/server/errors.js +5 -0
- package/dist/component/server/errors.js.map +1 -1
- package/dist/component/server/implementation/index.d.ts +49 -33
- package/dist/component/server/implementation/index.d.ts.map +1 -1
- package/dist/component/server/implementation/index.js +50 -18
- package/dist/component/server/implementation/index.js.map +1 -1
- package/dist/component/server/implementation/mutations/account.js.map +1 -1
- package/dist/component/server/implementation/mutations/code.js.map +1 -1
- package/dist/component/server/implementation/mutations/index.js +2 -2
- package/dist/component/server/implementation/mutations/index.js.map +1 -1
- package/dist/component/server/implementation/mutations/invalidate.js.map +1 -1
- package/dist/component/server/implementation/mutations/oauth.js.map +1 -1
- package/dist/component/server/implementation/mutations/refresh.js.map +1 -1
- package/dist/component/server/implementation/mutations/register.js +9 -3
- package/dist/component/server/implementation/mutations/register.js.map +1 -1
- package/dist/component/server/implementation/mutations/retrieve.js +8 -3
- package/dist/component/server/implementation/mutations/retrieve.js.map +1 -1
- package/dist/component/server/implementation/mutations/signature.js.map +1 -1
- package/dist/component/server/implementation/mutations/signin.js.map +1 -1
- package/dist/component/server/implementation/mutations/signout.js.map +1 -1
- package/dist/component/server/implementation/mutations/store.js +1 -1
- package/dist/component/server/implementation/mutations/store.js.map +1 -1
- package/dist/component/server/implementation/mutations/verifier.js.map +1 -1
- package/dist/component/server/implementation/mutations/verify.js.map +1 -1
- package/dist/component/server/implementation/ratelimit.js +9 -9
- package/dist/component/server/implementation/ratelimit.js.map +1 -1
- package/dist/component/server/implementation/refresh.js +7 -2
- package/dist/component/server/implementation/refresh.js.map +1 -1
- package/dist/component/server/implementation/sessions.js.map +1 -1
- package/dist/component/server/implementation/signin.js.map +1 -1
- package/dist/component/server/implementation/tokens.js +4 -2
- package/dist/component/server/implementation/tokens.js.map +1 -1
- package/dist/component/server/implementation/types.d.ts +1 -1
- package/dist/component/server/implementation/types.js.map +1 -1
- package/dist/component/server/implementation/users.js.map +1 -1
- package/dist/component/server/oauth.js +1 -0
- package/dist/component/server/oauth.js.map +1 -1
- package/dist/component/server/types.d.ts +36 -32
- package/dist/component/server/types.d.ts.map +1 -1
- package/dist/component/server/utils.js +7 -1
- package/dist/component/server/utils.js.map +1 -1
- package/dist/providers/anonymous.d.ts +2 -6
- package/dist/providers/anonymous.d.ts.map +1 -1
- package/dist/providers/anonymous.js +1 -7
- package/dist/providers/anonymous.js.map +1 -1
- package/dist/providers/credentials.d.ts +3 -5
- package/dist/providers/credentials.d.ts.map +1 -1
- package/dist/providers/credentials.js +1 -5
- package/dist/providers/credentials.js.map +1 -1
- package/dist/providers/device.d.ts +1 -5
- package/dist/providers/device.d.ts.map +1 -1
- package/dist/providers/device.js +1 -7
- package/dist/providers/device.js.map +1 -1
- package/dist/providers/email.d.ts +16 -6
- package/dist/providers/email.d.ts.map +1 -1
- package/dist/providers/email.js +21 -7
- package/dist/providers/email.js.map +1 -1
- package/dist/providers/passkey.d.ts +1 -5
- package/dist/providers/passkey.d.ts.map +1 -1
- package/dist/providers/passkey.js +1 -7
- package/dist/providers/passkey.js.map +1 -1
- package/dist/providers/password.d.ts +4 -8
- package/dist/providers/password.d.ts.map +1 -1
- package/dist/providers/password.js +6 -10
- package/dist/providers/password.js.map +1 -1
- package/dist/providers/phone.d.ts +1 -1
- package/dist/providers/phone.d.ts.map +1 -1
- package/dist/providers/phone.js +1 -1
- package/dist/providers/phone.js.map +1 -1
- package/dist/providers/totp.d.ts +1 -5
- package/dist/providers/totp.d.ts.map +1 -1
- package/dist/providers/totp.js +1 -7
- package/dist/providers/totp.js.map +1 -1
- package/dist/server/auth.d.ts +75 -67
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +3 -2
- package/dist/server/auth.js.map +1 -1
- package/dist/server/errors.d.ts +5 -0
- package/dist/server/errors.d.ts.map +1 -1
- package/dist/server/errors.js +5 -0
- package/dist/server/errors.js.map +1 -1
- package/dist/server/implementation/index.d.ts +63 -47
- package/dist/server/implementation/index.d.ts.map +1 -1
- package/dist/server/implementation/index.js +50 -18
- package/dist/server/implementation/index.js.map +1 -1
- package/dist/server/implementation/mutations/account.d.ts +9 -8
- package/dist/server/implementation/mutations/account.d.ts.map +1 -1
- package/dist/server/implementation/mutations/account.js.map +1 -1
- package/dist/server/implementation/mutations/code.d.ts +15 -14
- package/dist/server/implementation/mutations/code.d.ts.map +1 -1
- package/dist/server/implementation/mutations/code.js.map +1 -1
- package/dist/server/implementation/mutations/index.d.ts +114 -114
- package/dist/server/implementation/mutations/index.d.ts.map +1 -1
- package/dist/server/implementation/mutations/index.js +3 -3
- package/dist/server/implementation/mutations/index.js.map +1 -1
- package/dist/server/implementation/mutations/invalidate.d.ts +7 -6
- package/dist/server/implementation/mutations/invalidate.d.ts.map +1 -1
- package/dist/server/implementation/mutations/invalidate.js.map +1 -1
- package/dist/server/implementation/mutations/oauth.d.ts +9 -8
- package/dist/server/implementation/mutations/oauth.d.ts.map +1 -1
- package/dist/server/implementation/mutations/oauth.js.map +1 -1
- package/dist/server/implementation/mutations/refresh.d.ts +6 -5
- package/dist/server/implementation/mutations/refresh.d.ts.map +1 -1
- package/dist/server/implementation/mutations/refresh.js.map +1 -1
- package/dist/server/implementation/mutations/register.d.ts +16 -15
- package/dist/server/implementation/mutations/register.d.ts.map +1 -1
- package/dist/server/implementation/mutations/register.js +9 -3
- package/dist/server/implementation/mutations/register.js.map +1 -1
- package/dist/server/implementation/mutations/retrieve.d.ts +8 -5
- package/dist/server/implementation/mutations/retrieve.d.ts.map +1 -1
- package/dist/server/implementation/mutations/retrieve.js +10 -3
- package/dist/server/implementation/mutations/retrieve.js.map +1 -1
- package/dist/server/implementation/mutations/signature.d.ts +9 -8
- package/dist/server/implementation/mutations/signature.d.ts.map +1 -1
- package/dist/server/implementation/mutations/signature.js.map +1 -1
- package/dist/server/implementation/mutations/signin.d.ts +8 -7
- package/dist/server/implementation/mutations/signin.d.ts.map +1 -1
- package/dist/server/implementation/mutations/signin.js.map +1 -1
- package/dist/server/implementation/mutations/signout.d.ts +5 -4
- package/dist/server/implementation/mutations/signout.d.ts.map +1 -1
- package/dist/server/implementation/mutations/signout.js.map +1 -1
- package/dist/server/implementation/mutations/store.js +1 -1
- package/dist/server/implementation/mutations/store.js.map +1 -1
- package/dist/server/implementation/mutations/verifier.d.ts +4 -3
- package/dist/server/implementation/mutations/verifier.d.ts.map +1 -1
- package/dist/server/implementation/mutations/verifier.js.map +1 -1
- package/dist/server/implementation/mutations/verify.d.ts +6 -5
- package/dist/server/implementation/mutations/verify.d.ts.map +1 -1
- package/dist/server/implementation/mutations/verify.js.map +1 -1
- package/dist/server/implementation/ratelimit.js +9 -9
- package/dist/server/implementation/ratelimit.js.map +1 -1
- package/dist/server/implementation/refresh.d.ts +9 -9
- package/dist/server/implementation/refresh.d.ts.map +1 -1
- package/dist/server/implementation/refresh.js +7 -2
- package/dist/server/implementation/refresh.js.map +1 -1
- package/dist/server/implementation/sessions.d.ts +8 -8
- package/dist/server/implementation/sessions.js.map +1 -1
- package/dist/server/implementation/signin.d.ts +1 -1
- package/dist/server/implementation/signin.js.map +1 -1
- package/dist/server/implementation/tokens.d.ts +2 -2
- package/dist/server/implementation/tokens.d.ts.map +1 -1
- package/dist/server/implementation/tokens.js +4 -2
- package/dist/server/implementation/tokens.js.map +1 -1
- package/dist/server/implementation/types.d.ts +4 -4
- package/dist/server/implementation/types.js.map +1 -1
- package/dist/server/implementation/users.d.ts +5 -5
- package/dist/server/implementation/users.js.map +1 -1
- package/dist/server/index.d.ts +32 -15
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +275 -85
- package/dist/server/index.js.map +1 -1
- package/dist/server/oauth.js +1 -0
- package/dist/server/oauth.js.map +1 -1
- package/dist/server/providers.d.ts +9 -8
- package/dist/server/providers.d.ts.map +1 -1
- package/dist/server/types.d.ts +36 -32
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/utils.js +7 -1
- package/dist/server/utils.js.map +1 -1
- package/dist/server/version.d.ts +1 -1
- package/dist/server/version.js +1 -1
- package/dist/server/version.js.map +1 -1
- package/package.json +4 -3
- package/src/cli/index.ts +5 -5
- package/src/client/index.ts +600 -183
- package/src/component/_generated/api.ts +2 -0
- package/src/component/_generated/component.ts +499 -81
- package/src/component/functions.ts +115 -0
- package/src/component/public.ts +738 -251
- package/src/component/schema.ts +61 -61
- package/src/providers/anonymous.ts +1 -14
- package/src/providers/credentials.ts +2 -12
- package/src/providers/device.ts +0 -13
- package/src/providers/email.ts +28 -9
- package/src/providers/passkey.ts +0 -13
- package/src/providers/password.ts +12 -21
- package/src/providers/phone.ts +1 -1
- package/src/providers/totp.ts +0 -13
- package/src/server/auth.ts +6 -5
- package/src/server/errors.ts +12 -0
- package/src/server/implementation/index.ts +110 -45
- package/src/server/implementation/mutations/account.ts +4 -3
- package/src/server/implementation/mutations/code.ts +8 -5
- package/src/server/implementation/mutations/index.ts +5 -2
- package/src/server/implementation/mutations/invalidate.ts +5 -4
- package/src/server/implementation/mutations/oauth.ts +4 -3
- package/src/server/implementation/mutations/refresh.ts +5 -4
- package/src/server/implementation/mutations/register.ts +33 -9
- package/src/server/implementation/mutations/retrieve.ts +24 -7
- package/src/server/implementation/mutations/signature.ts +5 -4
- package/src/server/implementation/mutations/signin.ts +6 -5
- package/src/server/implementation/mutations/signout.ts +7 -4
- package/src/server/implementation/mutations/store.ts +1 -1
- package/src/server/implementation/mutations/verifier.ts +6 -3
- package/src/server/implementation/mutations/verify.ts +7 -4
- package/src/server/implementation/ratelimit.ts +13 -12
- package/src/server/implementation/refresh.ts +31 -24
- package/src/server/implementation/sessions.ts +11 -11
- package/src/server/implementation/signin.ts +2 -2
- package/src/server/implementation/tokens.ts +7 -3
- package/src/server/implementation/types.ts +4 -4
- package/src/server/implementation/users.ts +13 -13
- package/src/server/index.ts +448 -93
- package/src/server/oauth.ts +7 -4
- package/src/server/types.ts +37 -32
- package/src/server/utils.ts +14 -3
- package/src/server/version.ts +1 -1
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@ Component-first authentication for [Convex](https://convex.dev). One component,
|
|
|
6
6
|
|
|
7
7
|
- **Class-based API** — `new Auth(components.auth, { providers })` gives you everything.
|
|
8
8
|
- **OAuth via Arctic** — 50+ providers through [Arctic](https://arcticjs.dev), zero-dependency OAuth 2.0.
|
|
9
|
+
- **Fluent Convex builders (recommended)** — cleaner auth-aware API handling with middleware and explicit `.public()` / `.internal()` exports.
|
|
9
10
|
- **Password, passkeys, TOTP, magic links, OTP, phone, anonymous** — all built in.
|
|
10
11
|
- **Device Authorization (RFC 8628)** — authenticate CLIs, smart TVs, and IoT devices.
|
|
11
12
|
- **API keys** — scoped permissions, SHA-256 hashed storage, optional rate limiting.
|
|
@@ -16,13 +17,16 @@ Component-first authentication for [Convex](https://convex.dev). One component,
|
|
|
16
17
|
## Install
|
|
17
18
|
|
|
18
19
|
```bash
|
|
19
|
-
|
|
20
|
+
bun add @robelest/convex-auth
|
|
20
21
|
```
|
|
21
22
|
|
|
23
|
+
> Renamed package: if you are migrating from earlier previews, replace
|
|
24
|
+
> `@convex-dev/auth` with `@robelest/convex-auth` in imports and CLI commands.
|
|
25
|
+
|
|
22
26
|
## Quick Start
|
|
23
27
|
|
|
24
28
|
```bash
|
|
25
|
-
|
|
29
|
+
bunx @robelest/convex-auth
|
|
26
30
|
```
|
|
27
31
|
|
|
28
32
|
The interactive CLI sets up your Convex component, auth config, and HTTP routes in under a minute.
|
|
@@ -66,6 +70,33 @@ auth.http.add(http);
|
|
|
66
70
|
export default http;
|
|
67
71
|
```
|
|
68
72
|
|
|
73
|
+
## Recommended Convex API Handling (`fluent-convex`)
|
|
74
|
+
|
|
75
|
+
For new projects, we recommend `fluent-convex` for auth middleware composition and cleaner API exports.
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
// convex/functions.ts
|
|
79
|
+
import { createBuilder } from "fluent-convex";
|
|
80
|
+
import { WithZod } from "fluent-convex/zod";
|
|
81
|
+
import type { DataModel } from "./_generated/dataModel";
|
|
82
|
+
import { auth } from "./auth";
|
|
83
|
+
|
|
84
|
+
const convex = createBuilder<DataModel>();
|
|
85
|
+
|
|
86
|
+
const withRequiredAuth = convex.createMiddleware<any, { auth: any }>(
|
|
87
|
+
async (ctx, next) => {
|
|
88
|
+
const userId = await auth.user.require(ctx);
|
|
89
|
+
const user = await auth.user.get(ctx, userId);
|
|
90
|
+
return next({ ...ctx, auth: { ...ctx.auth, userId, user } });
|
|
91
|
+
},
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
export const query = convex.query().use(withRequiredAuth).extend(WithZod);
|
|
95
|
+
export const mutation = convex.mutation().use(withRequiredAuth).extend(WithZod);
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
`AuthCtx` from `@robelest/convex-auth/component` remains supported if your project already uses `convex-helpers`.
|
|
99
|
+
|
|
69
100
|
## Providers
|
|
70
101
|
|
|
71
102
|
| Provider | Import |
|
package/dist/client/index.d.ts
CHANGED
|
@@ -27,19 +27,19 @@ interface Storage {
|
|
|
27
27
|
/**
|
|
28
28
|
* Device code response returned when signing in with the `"device"` provider.
|
|
29
29
|
*
|
|
30
|
-
* The device displays the `userCode` (or `
|
|
30
|
+
* The device displays the `userCode` (or `verification_uri_complete`) and
|
|
31
31
|
* polls via `auth.device.poll()` until the user authorizes.
|
|
32
32
|
*/
|
|
33
33
|
type DeviceCodeResult = {
|
|
34
34
|
/** High-entropy device code used for polling (keep secret). */deviceCode: string; /** Short human-readable code the user enters (e.g. "WDJB-MJHT"). */
|
|
35
35
|
userCode: string; /** Base verification URL (e.g. "https://myapp.com/device"). */
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
verification_uri: string; /** Verification URL with user code pre-filled as `?code=XXXX-XXXX`. */
|
|
37
|
+
verification_uri_complete: string; /** Lifetime of the codes in seconds. */
|
|
38
38
|
expiresIn: number; /** Minimum polling interval in seconds. */
|
|
39
39
|
interval: number;
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
|
-
* Result of a `
|
|
42
|
+
* Result of a `sign_in` call.
|
|
43
43
|
*
|
|
44
44
|
* - `signingIn: true` — credentials were accepted and the user is authenticated.
|
|
45
45
|
* - `redirect` — OAuth flow initiated; redirect the user to `redirect.toString()`.
|
|
@@ -54,9 +54,10 @@ type SignInResult = {
|
|
|
54
54
|
deviceCode?: DeviceCodeResult; /** Opaque verifier for multi-step flows (pass to `totp.verify` or passkey phase 2). */
|
|
55
55
|
verifier?: string;
|
|
56
56
|
};
|
|
57
|
-
/** Reactive auth state snapshot returned by `auth.state` and `auth.
|
|
57
|
+
/** Reactive auth state snapshot returned by `auth.state` and `auth.on_change`. */
|
|
58
58
|
type AuthState = {
|
|
59
|
-
/**
|
|
59
|
+
/** High-level auth phase for deterministic UI state handling. */phase: "loading" | "handshake" | "authenticated" | "unauthenticated"; /** `true` during initial hydration before the first token is resolved. */
|
|
60
|
+
isLoading: boolean; /** `true` only after Convex confirms authentication with the backend. */
|
|
60
61
|
isAuthenticated: boolean; /** The raw JWT string, or `null` when not authenticated. */
|
|
61
62
|
token: string | null;
|
|
62
63
|
};
|
|
@@ -72,21 +73,21 @@ type ClientOptions = {
|
|
|
72
73
|
* Key-value storage for persisting tokens.
|
|
73
74
|
*
|
|
74
75
|
* - Defaults to `localStorage` in SPA mode.
|
|
75
|
-
* - Defaults to `null` (in-memory only) when `
|
|
76
|
+
* - Defaults to `null` (in-memory only) when `proxy_path` is set,
|
|
76
77
|
* since httpOnly cookies handle persistence.
|
|
77
78
|
*/
|
|
78
79
|
storage?: Storage | null; /** Override how the URL bar is updated after OAuth code exchange. */
|
|
79
|
-
|
|
80
|
+
replace_url?: (relative_url: string) => void | Promise<void>;
|
|
80
81
|
/**
|
|
81
82
|
* SSR proxy endpoint (e.g. `"/api/auth"`).
|
|
82
83
|
*
|
|
83
|
-
* When set, `
|
|
84
|
+
* When set, `sign_in`/`sign_out`/token refresh POST to this URL
|
|
84
85
|
* (with `credentials: "include"`) instead of calling Convex directly.
|
|
85
86
|
* The server handles httpOnly cookies for token persistence.
|
|
86
87
|
*
|
|
87
|
-
* Pair with {@link ClientOptions.
|
|
88
|
+
* Pair with {@link ClientOptions.token_seed} for flash-free SSR hydration.
|
|
88
89
|
*/
|
|
89
|
-
|
|
90
|
+
proxy_path?: string;
|
|
90
91
|
/**
|
|
91
92
|
* JWT from server-side hydration.
|
|
92
93
|
*
|
|
@@ -94,12 +95,12 @@ type ClientOptions = {
|
|
|
94
95
|
* and passes it to the client during SSR. This avoids a loading
|
|
95
96
|
* flash on first render — the client is immediately authenticated.
|
|
96
97
|
*/
|
|
97
|
-
|
|
98
|
+
token_seed?: string | null;
|
|
98
99
|
};
|
|
99
100
|
/**
|
|
100
101
|
* Create a framework-agnostic auth client.
|
|
101
102
|
*
|
|
102
|
-
* Returns an object with `
|
|
103
|
+
* Returns an object with `sign_in`, `sign_out`, `on_change`, `state`,
|
|
103
104
|
* `passkey`, and `totp` — everything needed for client-side auth.
|
|
104
105
|
*
|
|
105
106
|
* ### SPA mode (default)
|
|
@@ -117,8 +118,8 @@ type ClientOptions = {
|
|
|
117
118
|
* ```ts
|
|
118
119
|
* const auth = client({
|
|
119
120
|
* convex,
|
|
120
|
-
*
|
|
121
|
-
*
|
|
121
|
+
* proxy_path: '/api/auth',
|
|
122
|
+
* token_seed: tokenFromServer, // JWT read from httpOnly cookie during SSR
|
|
122
123
|
* });
|
|
123
124
|
* ```
|
|
124
125
|
*
|
|
@@ -127,13 +128,13 @@ type ClientOptions = {
|
|
|
127
128
|
* holds the JWT in memory only.
|
|
128
129
|
*
|
|
129
130
|
* @param options - Client configuration. See {@link ClientOptions}.
|
|
130
|
-
* @returns Auth client with `
|
|
131
|
+
* @returns Auth client with `sign_in`, `sign_out`, `on_change`, `state`, `passkey`, and `totp`.
|
|
131
132
|
*/
|
|
132
133
|
declare function client(options: ClientOptions): {
|
|
133
134
|
/** Current auth state snapshot. */readonly state: AuthState; /** Sign in with a provider. See {@link SignInResult} for return shape. */
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
sign_in: (provider?: string, args?: FormData | Record<string, Value>) => Promise<SignInResult>; /** Sign out and clear all token state. */
|
|
136
|
+
sign_out: () => Promise<void>; /** Subscribe to auth state changes. Returns an unsubscribe function. */
|
|
137
|
+
on_change: (cb: (state: AuthState) => void) => (() => void); /** Passkey (WebAuthn) authentication helpers. */
|
|
137
138
|
passkey: {
|
|
138
139
|
/**
|
|
139
140
|
* Check if WebAuthn passkeys are supported in the current environment.
|
|
@@ -245,8 +246,8 @@ declare function client(options: ClientOptions): {
|
|
|
245
246
|
*
|
|
246
247
|
* Called after a credentials sign-in returns `totpRequired: true`.
|
|
247
248
|
*
|
|
248
|
-
|
|
249
|
-
|
|
249
|
+
* ```ts
|
|
250
|
+
* const result = await auth.sign_in("password", { email, password });
|
|
250
251
|
* if (result.totpRequired) {
|
|
251
252
|
* await auth.totp.verify({ code: "123456", verifier: result.verifier! });
|
|
252
253
|
* }
|
|
@@ -261,19 +262,19 @@ declare function client(options: ClientOptions): {
|
|
|
261
262
|
/**
|
|
262
263
|
* Poll for device authorization status.
|
|
263
264
|
*
|
|
264
|
-
|
|
265
|
-
|
|
265
|
+
* The device calls this repeatedly (respecting `interval`) after
|
|
266
|
+
* initiating a device flow via `sign_in("device")`. Returns when
|
|
266
267
|
* the user authorizes, or throws on timeout/denial.
|
|
267
268
|
*
|
|
268
|
-
|
|
269
|
-
|
|
269
|
+
* ```ts
|
|
270
|
+
* const result = await auth.sign_in("device");
|
|
270
271
|
* const { deviceCode } = result;
|
|
271
272
|
* // Display deviceCode.userCode to the user, then poll:
|
|
272
273
|
* await auth.device.poll(deviceCode);
|
|
273
274
|
* // User is now signed in
|
|
274
275
|
* ```
|
|
275
|
-
|
|
276
|
-
|
|
276
|
+
*
|
|
277
|
+
* @param code - The {@link DeviceCodeResult} from `sign_in("device")`.
|
|
277
278
|
* @returns Resolves when the device is authorized and tokens are stored.
|
|
278
279
|
* @throws When the code expires, is denied, or polling encounters an error.
|
|
279
280
|
*/
|
|
@@ -292,7 +293,8 @@ declare function client(options: ClientOptions): {
|
|
|
292
293
|
* @param userCode - The user code entered by the user (e.g. "WDJB-MJHT").
|
|
293
294
|
*/
|
|
294
295
|
verify: (userCode: string) => Promise<void>;
|
|
295
|
-
};
|
|
296
|
+
}; /** Remove global listeners when disposing this client instance. */
|
|
297
|
+
destroy: () => void;
|
|
296
298
|
};
|
|
297
299
|
//#endregion
|
|
298
300
|
export { AUTH_ERRORS, type AuthErrorCode, AuthState, ClientOptions, DeviceCodeResult, SignInResult, Storage, client, isAuthError, parseAuthError };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/client/index.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/client/index.ts"],"mappings":";;;;;;AAU0B;;;;;;;UAWhB,eAAA;EACR,MAAA,CAAO,MAAA,OAAa,IAAA,QAAY,OAAA;EAChC,OAAA,CACE,UAAA,GAAa,IAAA;IACX,iBAAA;EAAA,MACI,OAAA,6BACN,QAAA,IAAY,eAAA;EAEd,SAAA;AAAA;;UAIe,OAAA;EACf,OAAA,CACE,GAAA,uCAC6B,OAAA;EAC/B,OAAA,CAAQ,GAAA,UAAa,KAAA,kBAAuB,OAAA;EAC5C,UAAA,CAAW,GAAA,kBAAqB,OAAA;AAAA;;;;;;;KActB,gBAAA;EAjBR,+DAmBF,UAAA,UAjBA;EAmBA,QAAA,UAnBqB;EAqBrB,gBAAA,UApBA;EAsBA,yBAAA,UAtBgC;EAwBhC,SAAA,UAxBuC;EA0BvC,QAAA;AAAA;;;;;;;;;;KAYU,YAAA;EAAA,mEAEV,SAAA;EAEA,QAAA,GAAW,GAAA,EAFX;EAIA,YAAA,YAFW;EAIX,UAAA,GAAa,gBAAA,EAAb;EAEA,QAAA;AAAA;;KAIU,SAAA;EAAA,iEAEV,KAAA;EAEA,SAAA,WAFA;EAIA,eAAA;EAEA,KAAA;AAAA;;KAIU,aAAA;EAAa,iEAEvB,MAAA,EAAQ,eAAA;EAAA;;;;EAKR,GAAA;EALA;;;;;;;EAaA,OAAA,GAAU,OAAA,SAYV;EAVA,WAAA,IAAe,YAAA,oBAAgC,OAAA;EAkBrC;;AAoGZ;;;;;;;EA5GE,UAAA;EAmnBW;;;;;;;EA3mBX,UAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoGc,MAAA,CAAO,OAAA,EAAS,aAAA;EAi7BxB,mDAwgBS,SAAA,EAtgBV;+BA9ac,IAAA,GACV,QAAA,GAAW,MAAA,SAAe,KAAA,MAChC,OAAA,CAAQ,YAAA;iCAkkBkB;mBAzTL,KAAA,EAAO,SAAA,4BA0T1B;;;;;;;;;;;;;;;+BAlM4B,OAAA;;;;;;;;;;;;;;;;;;;;;;;MAsC3B,IAAA;MACA,KAAA;MACA,QAAA;MACA,eAAA;IAAA,MAED,OAAA,CAAQ,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsJA,KAAA;MAAgB,QAAA;IAAA,MACxB,OAAA,CAAQ,YAAA;EAAA;;;;;;;;;;;;;;MAwHA,IAAA;MAAe,WAAA;IAAA,MACvB,OAAA;MAAU,GAAA;MAAa,MAAA;MAAgB,QAAA;MAAkB,MAAA;IAAA;;;;;;;;;MA4B1D,IAAA;MACA,QAAA;MACA,MAAA;IAAA,MACE,OAAA;;;;;;;;;;;;;;MAkDmB,IAAA;MAAc,QAAA;IAAA,MAAqB,OAAA;EAAA;;;;;;;;;;;;;;;;;;;;;iBA0DvC,gBAAA,KAAmB,OAAA;;;;;;;;;;;;;;kCAqFJ,OAAA;EAAA"}
|