@growth-labs/auth 0.4.1 → 0.5.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.
- package/README.md +52 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +21 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +7 -0
- package/dist/options.js.map +1 -1
- package/dist/renderers.d.ts +36 -1
- package/dist/renderers.d.ts.map +1 -1
- package/dist/renderers.js +38 -4
- package/dist/renderers.js.map +1 -1
- package/dist/routes/api/code-request.d.ts +3 -0
- package/dist/routes/api/code-request.d.ts.map +1 -0
- package/dist/routes/api/code-request.js +13 -0
- package/dist/routes/api/code-request.js.map +1 -0
- package/dist/routes/api/code-verify.d.ts +3 -0
- package/dist/routes/api/code-verify.d.ts.map +1 -0
- package/dist/routes/api/code-verify.js +16 -0
- package/dist/routes/api/code-verify.js.map +1 -0
- package/dist/routes/api/password-reset-confirm.d.ts +3 -0
- package/dist/routes/api/password-reset-confirm.d.ts.map +1 -0
- package/dist/routes/api/password-reset-confirm.js +16 -0
- package/dist/routes/api/password-reset-confirm.js.map +1 -0
- package/dist/routes/api/password-reset-request.d.ts +3 -0
- package/dist/routes/api/password-reset-request.d.ts.map +1 -0
- package/dist/routes/api/password-reset-request.js +12 -0
- package/dist/routes/api/password-reset-request.js.map +1 -0
- package/dist/routes/api/password-verify.d.ts +3 -0
- package/dist/routes/api/password-verify.d.ts.map +1 -0
- package/dist/routes/api/password-verify.js +16 -0
- package/dist/routes/api/password-verify.js.map +1 -0
- package/dist/routes/api/shared.d.ts +11 -0
- package/dist/routes/api/shared.d.ts.map +1 -0
- package/dist/routes/api/shared.js +30 -0
- package/dist/routes/api/shared.js.map +1 -0
- package/dist/routes/flow.d.ts +9 -0
- package/dist/routes/flow.d.ts.map +1 -0
- package/dist/routes/flow.js +26 -0
- package/dist/routes/flow.js.map +1 -0
- package/dist/routes/login.d.ts.map +1 -1
- package/dist/routes/login.js +7 -1
- package/dist/routes/login.js.map +1 -1
- package/dist/routes/password.d.ts +3 -0
- package/dist/routes/password.d.ts.map +1 -0
- package/dist/routes/password.js +21 -0
- package/dist/routes/password.js.map +1 -0
- package/dist/routes/verify-code.d.ts +3 -0
- package/dist/routes/verify-code.d.ts.map +1 -0
- package/dist/routes/verify-code.js +22 -0
- package/dist/routes/verify-code.js.map +1 -0
- package/dist/server.d.ts +42 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +125 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/cookies.d.ts +3 -1
- package/dist/utils/cookies.d.ts.map +1 -1
- package/dist/utils/cookies.js +3 -2
- package/dist/utils/cookies.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pkce.d.ts +1 -0
- package/dist/utils/pkce.d.ts.map +1 -1
- package/dist/utils/pkce.js +5 -2
- package/dist/utils/pkce.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -23,6 +23,8 @@ auth({
|
|
|
23
23
|
loginPath: '/login', // Redirect target for unauthenticated users
|
|
24
24
|
logoutRedirect: '/',
|
|
25
25
|
callbackPath: '/api/auth/callback',
|
|
26
|
+
passwordPath: '/password', // Local branded password form when renderers.password is set
|
|
27
|
+
verifyCodePath: '/verify-code', // Local branded magic-code form when renderers.verifyCode is set
|
|
26
28
|
providers: ['google', 'password', 'email-code'],
|
|
27
29
|
loginPage: {
|
|
28
30
|
title: 'Sign in',
|
|
@@ -33,6 +35,8 @@ auth({
|
|
|
33
35
|
// Optional all-or-nothing UI overrides per auth surface.
|
|
34
36
|
// Flow logic, cookies, callback exchange, and issuer URLs remain package-owned.
|
|
35
37
|
login: { module: '/src/auth/auth-render', export: 'renderLogin' },
|
|
38
|
+
password: { module: '/src/auth/auth-render', export: 'renderPassword' },
|
|
39
|
+
verifyCode: { module: '/src/auth/auth-render', export: 'renderVerifyCode' },
|
|
36
40
|
},
|
|
37
41
|
accessTokenMaxAge: 900, // 15 min (seconds)
|
|
38
42
|
refreshTokenMaxAge: 2592000, // 30 days
|
|
@@ -52,19 +56,53 @@ auth({
|
|
|
52
56
|
- `GET /login` — provider-selection page; `?provider=google|password|email-code` starts auth locally and redirects into the issuer's generic `/authorize` endpoint
|
|
53
57
|
- `GET /logout` — clears cookies, revokes refresh token at the internal issuer, redirects
|
|
54
58
|
- `GET /api/auth/callback` — OAuth callback handler (PKCE code exchange, cookie setting)
|
|
55
|
-
- `GET /forgot-password` / `GET /reset-password` — local redirects to issuer-owned password UI
|
|
59
|
+
- `GET /forgot-password` / `GET /reset-password` — local redirects to issuer-owned password UI unless renderers are configured
|
|
60
|
+
- `GET /password` / `GET /verify-code` — local branded password and magic-code views when `renderers.password` / `renderers.verifyCode` are configured
|
|
61
|
+
- `POST /api/auth/password/verify`, `/api/auth/code/request`, `/api/auth/code/verify`, `/api/auth/password/reset/request`, `/api/auth/password/reset/confirm` — package-owned back-channel form handlers that call the issuer JSON API through `issuerInternal`
|
|
56
62
|
|
|
57
63
|
## Branded Auth UI
|
|
58
64
|
|
|
59
65
|
Consumers can supply `renderers.login`, `renderers.forgotPassword`, and
|
|
60
|
-
`renderers.resetPassword` in `auth()` options.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
`
|
|
66
|
+
`renderers.resetPassword` in `auth()` options. Consumers that want every
|
|
67
|
+
password and magic-code step to stay on their own domain can also supply
|
|
68
|
+
`renderers.password` and `renderers.verifyCode`. Each renderer receives a
|
|
69
|
+
typed payload from `@growth-labs/auth/types` with package-built local form
|
|
70
|
+
actions, provider or issuer URLs, and brand values, then returns either an
|
|
71
|
+
HTML string or a `Response`.
|
|
72
|
+
|
|
73
|
+
Renderers replace only GET form views. Callback, logout, token exchange,
|
|
74
|
+
cookies, PKCE/state, and issuer communication remain package-owned. When
|
|
75
|
+
`renderers.password` or `renderers.verifyCode` is configured, `/login`
|
|
76
|
+
links those provider buttons to the local branded routes; otherwise it
|
|
77
|
+
keeps the existing issuer-hosted OpenAuth UI flow.
|
|
78
|
+
|
|
79
|
+
Forgot/reset renderers receive both the historical issuer URL and the new
|
|
80
|
+
local API form target. Use `passwordResetRequestUrl` and
|
|
81
|
+
`passwordResetConfirmUrl` for consumer-hosted reset forms.
|
|
82
|
+
|
|
83
|
+
## Server SDK
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
import { authClient } from '@growth-labs/auth/server'
|
|
87
|
+
|
|
88
|
+
const client = authClient(context)
|
|
89
|
+
|
|
90
|
+
await client.password.verify({ email, password })
|
|
91
|
+
await client.code.request({ email })
|
|
92
|
+
await client.code.verify({ email, code })
|
|
93
|
+
await client.password.reset.request({ email })
|
|
94
|
+
await client.password.reset.confirm({ token, newPassword })
|
|
95
|
+
```
|
|
64
96
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
97
|
+
`authClient(context)` reads the resolved integration config and Worker
|
|
98
|
+
bindings, posts to `{issuerInternal ?? issuer}/api/v1/auth/*`, resolves
|
|
99
|
+
`clientSecret` binding names at request time, sends `client_secret_basic`
|
|
100
|
+
for confidential clients, and includes `client_id`, `redirect_uri`, PKCE
|
|
101
|
+
`code_challenge`, `state`, and `resource` for authorization-code issuing
|
|
102
|
+
calls. Password reset request calls also include `reset_url_base` from the
|
|
103
|
+
current consumer origin so the issuer can send reset links back to the same
|
|
104
|
+
registered host. The package-owned POST routes use this SDK directly;
|
|
105
|
+
consumers can also use it from custom server routes.
|
|
68
106
|
|
|
69
107
|
## Using `context.locals.user`
|
|
70
108
|
|
|
@@ -117,10 +155,10 @@ internal package-test helper and is not exported from
|
|
|
117
155
|
|
|
118
156
|
## OAuth Flow Summary
|
|
119
157
|
|
|
120
|
-
1. User clicks a provider on the local login page → browser hits `/login?provider=...`
|
|
121
|
-
2. The local `/login` start route stores PKCE/state/redirect/provider cookies and redirects to `{issuer}/authorize?provider=...`; configured `resource` is sent as the RFC 8707 resource indicator
|
|
122
|
-
3.
|
|
123
|
-
4.
|
|
158
|
+
1. User clicks a provider on the local login page → browser hits `/login?provider=...` or a local branded `/password` / `/verify-code` route when that renderer is configured
|
|
159
|
+
2. The local `/login` start route stores PKCE/state/redirect/provider cookies and redirects to `{issuer}/authorize?provider=...`; configured `resource` is sent as the RFC 8707 resource indicator. Consumer-hosted `/password` and `/verify-code` pages seed the same flow cookies locally, with the PKCE cookie visible to their package-owned POST handlers.
|
|
160
|
+
3. For consumer-hosted password or magic-code flows, package-owned POST routes call `{issuerInternal ?? issuer}/api/v1/auth/*` and redirect to `/api/auth/callback?code=...&state=...`
|
|
161
|
+
4. Issuer authenticates or issues a JSON authorization code → callback exchanges code at `{issuerInternal ?? issuer}/token` via PKCE, sends `Authorization: Basic base64(client_id:client_secret)` when `clientSecret` is configured, includes `resource`, reads `properties.isNewUser` from the JWT payload with fallback to top-level `isNewUser` for legacy issuers, uses the `{cookiePrefix}_provider` auth-flow cookie set at login start for provider attribution, sets session cookies, sets `gl_id` when `GL_IDENTITY_SECRET` is configured, and redirects to the original page
|
|
124
162
|
|
|
125
163
|
## Signed Identity Cookie
|
|
126
164
|
|
|
@@ -160,14 +198,14 @@ in their app.
|
|
|
160
198
|
|
|
161
199
|
- Virtual module: `virtual:growth-labs/auth/config` (slash, not hyphen)
|
|
162
200
|
- Cookie names: `{cookiePrefix}_at`, `{cookiePrefix}_rt`, `{cookiePrefix}_pkce`, `{cookiePrefix}_state`, `{cookiePrefix}_redirect`, `{cookiePrefix}_provider`, `gl_id`
|
|
163
|
-
- PKCE flow with `code_verifier` / `code_challenge` (S256); `{cookiePrefix}_pkce` is scoped to `callbackPath`
|
|
201
|
+
- PKCE flow with `code_verifier` / `code_challenge` (S256); `{cookiePrefix}_pkce` is scoped to `callbackPath` for issuer redirect flows and to `/` for consumer-hosted password/code flows that post before callback
|
|
164
202
|
- `issuer` is browser-facing; optional `issuerInternal` is used for token exchange, silent refresh, JWT verification/JWKS lookup, and revocation. If omitted, `issuerInternal` falls back to `issuer`.
|
|
165
203
|
- Confidential OAuth clients use `client_secret_basic` on token exchange and refresh when `clientSecret` is configured. Prefer a Worker secret binding name such as `AUTH_CLIENT_SECRET`; runtime code resolves that binding before calling the issuer.
|
|
166
204
|
- RFC 8707 `resource` is sent on authorize, token exchange, and refresh when configured
|
|
167
205
|
- `email-code` is a client-side alias for the issuer's OpenAuth `code` provider
|
|
168
206
|
- CSRF state parameter verified on callback
|
|
169
207
|
- Access-token user claims live under `payload.properties.*`; the client falls back to top-level `payload.email`, `payload.name`, `payload.image`, and `payload.isNewUser` for legacy issuers
|
|
170
|
-
- Forgot/reset password routes
|
|
208
|
+
- Forgot/reset password routes can remain issuer-owned redirects or use renderer-provided local API form targets
|
|
171
209
|
- Branded auth screens use `renderers`, not consumer-local shadow routes
|
|
172
210
|
- No `aud` claim validation in this package — single client per issuer assumed
|
|
173
211
|
- `.astro` component files ship as source, not compiled
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,UAAU,gBAAgB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QACN,oBAAoB,EAAE,CAAC,MAAM,EAAE;YAC9B,aAAa,EAAE,CAAC,IAAI,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;aAAE,KAAK,IAAI,CAAA;YAC5E,WAAW,EAAE,CAAC,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,OAAO,CAAA;aAAE,KAAK,IAAI,CAAA;YACzF,YAAY,EAAE,CAAC,MAAM,EAAE;gBACtB,IAAI,CAAC,EAAE;oBAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;iBAAE,CAAA;aAC/D,KAAK,IAAI,CAAA;SACV,KAAK,IAAI,CAAA;KACV,CAAA;CACD;AAQD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAuBjE;AAWD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,UAAU,gBAAgB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QACN,oBAAoB,EAAE,CAAC,MAAM,EAAE;YAC9B,aAAa,EAAE,CAAC,IAAI,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;aAAE,KAAK,IAAI,CAAA;YAC5E,WAAW,EAAE,CAAC,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,OAAO,CAAA;aAAE,KAAK,IAAI,CAAA;YACzF,YAAY,EAAE,CAAC,MAAM,EAAE;gBACtB,IAAI,CAAC,EAAE;oBAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;iBAAE,CAAA;aAC/D,KAAK,IAAI,CAAA;SACV,KAAK,IAAI,CAAA;KACV,CAAA;CACD;AAQD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAuBjE;AAWD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,CAyGvE"}
|
package/dist/index.js
CHANGED
|
@@ -89,6 +89,47 @@ export default function auth(userOptions) {
|
|
|
89
89
|
entrypoint: resolveEntrypoint('./routes/reset-password'),
|
|
90
90
|
prerender: false,
|
|
91
91
|
});
|
|
92
|
+
injectRoute({
|
|
93
|
+
pattern: options.passwordVerifyPath,
|
|
94
|
+
entrypoint: resolveEntrypoint('./routes/api/password-verify'),
|
|
95
|
+
prerender: false,
|
|
96
|
+
});
|
|
97
|
+
injectRoute({
|
|
98
|
+
pattern: options.passwordResetRequestPath,
|
|
99
|
+
entrypoint: resolveEntrypoint('./routes/api/password-reset-request'),
|
|
100
|
+
prerender: false,
|
|
101
|
+
});
|
|
102
|
+
injectRoute({
|
|
103
|
+
pattern: options.passwordResetConfirmPath,
|
|
104
|
+
entrypoint: resolveEntrypoint('./routes/api/password-reset-confirm'),
|
|
105
|
+
prerender: false,
|
|
106
|
+
});
|
|
107
|
+
if (options.renderers.password) {
|
|
108
|
+
injectRoute({
|
|
109
|
+
pattern: options.passwordPath,
|
|
110
|
+
entrypoint: resolveEntrypoint('./routes/password'),
|
|
111
|
+
prerender: false,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (options.providers.includes('email-code')) {
|
|
116
|
+
injectRoute({
|
|
117
|
+
pattern: options.codeRequestPath,
|
|
118
|
+
entrypoint: resolveEntrypoint('./routes/api/code-request'),
|
|
119
|
+
prerender: false,
|
|
120
|
+
});
|
|
121
|
+
injectRoute({
|
|
122
|
+
pattern: options.codeVerifyPath,
|
|
123
|
+
entrypoint: resolveEntrypoint('./routes/api/code-verify'),
|
|
124
|
+
prerender: false,
|
|
125
|
+
});
|
|
126
|
+
if (options.renderers.verifyCode) {
|
|
127
|
+
injectRoute({
|
|
128
|
+
pattern: options.verifyCodePath,
|
|
129
|
+
entrypoint: resolveEntrypoint('./routes/verify-code'),
|
|
130
|
+
prerender: false,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
92
133
|
}
|
|
93
134
|
},
|
|
94
135
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/options.d.ts
CHANGED
|
@@ -14,8 +14,15 @@ export declare const authOptionsSchema: z.ZodObject<{
|
|
|
14
14
|
loginPath: z.ZodDefault<z.ZodString>;
|
|
15
15
|
logoutRedirect: z.ZodDefault<z.ZodString>;
|
|
16
16
|
callbackPath: z.ZodDefault<z.ZodString>;
|
|
17
|
+
passwordPath: z.ZodDefault<z.ZodString>;
|
|
18
|
+
verifyCodePath: z.ZodDefault<z.ZodString>;
|
|
17
19
|
forgotPasswordPath: z.ZodDefault<z.ZodString>;
|
|
18
20
|
resetPasswordPath: z.ZodDefault<z.ZodString>;
|
|
21
|
+
passwordVerifyPath: z.ZodDefault<z.ZodString>;
|
|
22
|
+
codeRequestPath: z.ZodDefault<z.ZodString>;
|
|
23
|
+
codeVerifyPath: z.ZodDefault<z.ZodString>;
|
|
24
|
+
passwordResetRequestPath: z.ZodDefault<z.ZodString>;
|
|
25
|
+
passwordResetConfirmPath: z.ZodDefault<z.ZodString>;
|
|
19
26
|
providers: z.ZodDefault<z.ZodArray<z.ZodEnum<["google", "password", "email-code"]>, "many">>;
|
|
20
27
|
loginPage: z.ZodDefault<z.ZodObject<{
|
|
21
28
|
title: z.ZodDefault<z.ZodString>;
|
|
@@ -40,8 +47,15 @@ export declare const authOptionsSchema: z.ZodObject<{
|
|
|
40
47
|
loginPath: string;
|
|
41
48
|
logoutRedirect: string;
|
|
42
49
|
callbackPath: string;
|
|
50
|
+
passwordPath: string;
|
|
51
|
+
verifyCodePath: string;
|
|
43
52
|
forgotPasswordPath: string;
|
|
44
53
|
resetPasswordPath: string;
|
|
54
|
+
passwordVerifyPath: string;
|
|
55
|
+
codeRequestPath: string;
|
|
56
|
+
codeVerifyPath: string;
|
|
57
|
+
passwordResetRequestPath: string;
|
|
58
|
+
passwordResetConfirmPath: string;
|
|
45
59
|
providers: ("google" | "password" | "email-code")[];
|
|
46
60
|
loginPage: {
|
|
47
61
|
title: string;
|
|
@@ -68,8 +82,15 @@ export declare const authOptionsSchema: z.ZodObject<{
|
|
|
68
82
|
loginPath?: string | undefined;
|
|
69
83
|
logoutRedirect?: string | undefined;
|
|
70
84
|
callbackPath?: string | undefined;
|
|
85
|
+
passwordPath?: string | undefined;
|
|
86
|
+
verifyCodePath?: string | undefined;
|
|
71
87
|
forgotPasswordPath?: string | undefined;
|
|
72
88
|
resetPasswordPath?: string | undefined;
|
|
89
|
+
passwordVerifyPath?: string | undefined;
|
|
90
|
+
codeRequestPath?: string | undefined;
|
|
91
|
+
codeVerifyPath?: string | undefined;
|
|
92
|
+
passwordResetRequestPath?: string | undefined;
|
|
93
|
+
passwordResetConfirmPath?: string | undefined;
|
|
73
94
|
providers?: ("google" | "password" | "email-code")[] | undefined;
|
|
74
95
|
loginPage?: {
|
|
75
96
|
title?: string | undefined;
|
package/dist/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiD5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
package/dist/options.js
CHANGED
|
@@ -18,8 +18,15 @@ export const authOptionsSchema = z.object({
|
|
|
18
18
|
loginPath: z.string().default('/login'),
|
|
19
19
|
logoutRedirect: z.string().default('/'),
|
|
20
20
|
callbackPath: z.string().default('/api/auth/callback'),
|
|
21
|
+
passwordPath: z.string().default('/password'),
|
|
22
|
+
verifyCodePath: z.string().default('/verify-code'),
|
|
21
23
|
forgotPasswordPath: z.string().default('/forgot-password'),
|
|
22
24
|
resetPasswordPath: z.string().default('/reset-password'),
|
|
25
|
+
passwordVerifyPath: z.string().default('/api/auth/password/verify'),
|
|
26
|
+
codeRequestPath: z.string().default('/api/auth/code/request'),
|
|
27
|
+
codeVerifyPath: z.string().default('/api/auth/code/verify'),
|
|
28
|
+
passwordResetRequestPath: z.string().default('/api/auth/password/reset/request'),
|
|
29
|
+
passwordResetConfirmPath: z.string().default('/api/auth/password/reset/confirm'),
|
|
23
30
|
// ─── Providers ───
|
|
24
31
|
providers: z
|
|
25
32
|
.array(z.enum(['google', 'password', 'email-code']))
|
package/dist/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,sBAAsB;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAE3C,0BAA0B;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAErC,+BAA+B;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE1C,0BAA0B;IAC1B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAE/C,6BAA6B;IAC7B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACtD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC1D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
|
package/dist/renderers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AuthRendererBrand, AuthRendererResult, ForgotPasswordRendererPayload, LoginRendererPayload, ResetPasswordRendererPayload, ResolvedAuthRenderers } from './types.js';
|
|
1
|
+
import type { AuthRendererBrand, AuthRendererResult, ForgotPasswordRendererPayload, LoginRendererPayload, PasswordRendererPayload, ResetPasswordRendererPayload, ResolvedAuthRenderers, VerifyCodeRendererPayload } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Look up the bundled renderer for a surface. After 0.3.7 the lookup is
|
|
4
4
|
* build-time only — renderers are resolved into the virtual module by the
|
|
@@ -24,11 +24,15 @@ export declare function loginRendererPayload(options: {
|
|
|
24
24
|
logoUrl?: string;
|
|
25
25
|
};
|
|
26
26
|
loginPath: string;
|
|
27
|
+
passwordPath: string;
|
|
28
|
+
verifyCodePath: string;
|
|
27
29
|
providers: string[];
|
|
28
30
|
}, data: {
|
|
29
31
|
redirectPath: string;
|
|
30
32
|
error: string | null;
|
|
31
33
|
reset: string | null;
|
|
34
|
+
useLocalPassword?: boolean;
|
|
35
|
+
useLocalVerifyCode?: boolean;
|
|
32
36
|
}): LoginRendererPayload;
|
|
33
37
|
export declare function forgotPasswordRendererPayload(options: {
|
|
34
38
|
loginPage: {
|
|
@@ -37,6 +41,7 @@ export declare function forgotPasswordRendererPayload(options: {
|
|
|
37
41
|
logoUrl?: string;
|
|
38
42
|
};
|
|
39
43
|
loginPath: string;
|
|
44
|
+
passwordResetRequestPath: string;
|
|
40
45
|
}, data: {
|
|
41
46
|
forgotPasswordUrl: string;
|
|
42
47
|
error: string | null;
|
|
@@ -49,9 +54,39 @@ export declare function resetPasswordRendererPayload(options: {
|
|
|
49
54
|
logoUrl?: string;
|
|
50
55
|
};
|
|
51
56
|
loginPath: string;
|
|
57
|
+
passwordResetConfirmPath: string;
|
|
52
58
|
}, data: {
|
|
53
59
|
resetPasswordUrl: string;
|
|
54
60
|
error: string | null;
|
|
55
61
|
token: string | null;
|
|
56
62
|
}): ResetPasswordRendererPayload;
|
|
63
|
+
export declare function passwordRendererPayload(options: {
|
|
64
|
+
loginPage: {
|
|
65
|
+
title: string;
|
|
66
|
+
brandName?: string;
|
|
67
|
+
logoUrl?: string;
|
|
68
|
+
};
|
|
69
|
+
loginPath: string;
|
|
70
|
+
forgotPasswordPath: string;
|
|
71
|
+
passwordVerifyPath: string;
|
|
72
|
+
}, data: {
|
|
73
|
+
email: string | null;
|
|
74
|
+
error: string | null;
|
|
75
|
+
redirectPath: string;
|
|
76
|
+
}): PasswordRendererPayload;
|
|
77
|
+
export declare function verifyCodeRendererPayload(options: {
|
|
78
|
+
loginPage: {
|
|
79
|
+
title: string;
|
|
80
|
+
brandName?: string;
|
|
81
|
+
logoUrl?: string;
|
|
82
|
+
};
|
|
83
|
+
loginPath: string;
|
|
84
|
+
codeRequestPath: string;
|
|
85
|
+
codeVerifyPath: string;
|
|
86
|
+
}, data: {
|
|
87
|
+
email: string | null;
|
|
88
|
+
error: string | null;
|
|
89
|
+
sent: string | null;
|
|
90
|
+
redirectPath: string;
|
|
91
|
+
}): VerifyCodeRendererPayload;
|
|
57
92
|
//# sourceMappingURL=renderers.d.ts.map
|
package/dist/renderers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAChE,OAAO,EAAE,CAAC,GACR,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS,CAEtC;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQtF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACtC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAClE,GAAG,iBAAiB,CAMpB;AAED,wBAAgB,oBAAoB,CACnC,OAAO,EAAE;IACR,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;CACnB,EACD,IAAI,EAAE;IACL,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"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"}
|
package/dist/renderers.js
CHANGED
|
@@ -28,12 +28,21 @@ export function rendererBrand(options) {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
export function loginRendererPayload(options, data) {
|
|
31
|
-
const
|
|
31
|
+
const makeLoginStartUrl = (provider) => `${options.loginPath}?provider=${encodeURIComponent(provider)}&redirect=${encodeURIComponent(data.redirectPath)}`;
|
|
32
|
+
const makeSurfaceUrl = (path) => `${path}?redirect=${encodeURIComponent(data.redirectPath)}`;
|
|
32
33
|
return {
|
|
33
34
|
providerUrls: {
|
|
34
|
-
google: options.providers.includes('google') ?
|
|
35
|
-
password: options.providers.includes('password')
|
|
36
|
-
|
|
35
|
+
google: options.providers.includes('google') ? makeLoginStartUrl('google') : undefined,
|
|
36
|
+
password: options.providers.includes('password')
|
|
37
|
+
? data.useLocalPassword
|
|
38
|
+
? makeSurfaceUrl(options.passwordPath)
|
|
39
|
+
: makeLoginStartUrl('password')
|
|
40
|
+
: undefined,
|
|
41
|
+
emailCode: options.providers.includes('email-code')
|
|
42
|
+
? data.useLocalVerifyCode
|
|
43
|
+
? makeSurfaceUrl(options.verifyCodePath)
|
|
44
|
+
: makeLoginStartUrl('email-code')
|
|
45
|
+
: undefined,
|
|
37
46
|
},
|
|
38
47
|
errorCode: data.error ?? undefined,
|
|
39
48
|
reset: data.reset ? true : undefined,
|
|
@@ -44,6 +53,7 @@ export function loginRendererPayload(options, data) {
|
|
|
44
53
|
export function forgotPasswordRendererPayload(options, data) {
|
|
45
54
|
return {
|
|
46
55
|
forgotPasswordUrl: data.forgotPasswordUrl,
|
|
56
|
+
passwordResetRequestUrl: options.passwordResetRequestPath,
|
|
47
57
|
errorCode: data.error ?? undefined,
|
|
48
58
|
sent: data.sent ? true : undefined,
|
|
49
59
|
loginUrl: options.loginPath,
|
|
@@ -53,10 +63,34 @@ export function forgotPasswordRendererPayload(options, data) {
|
|
|
53
63
|
export function resetPasswordRendererPayload(options, data) {
|
|
54
64
|
return {
|
|
55
65
|
resetPasswordUrl: data.resetPasswordUrl,
|
|
66
|
+
passwordResetConfirmUrl: options.passwordResetConfirmPath,
|
|
56
67
|
errorCode: data.error ?? undefined,
|
|
57
68
|
token: data.token ?? undefined,
|
|
58
69
|
loginUrl: options.loginPath,
|
|
59
70
|
brand: rendererBrand(options),
|
|
60
71
|
};
|
|
61
72
|
}
|
|
73
|
+
export function passwordRendererPayload(options, data) {
|
|
74
|
+
return {
|
|
75
|
+
passwordVerifyUrl: options.passwordVerifyPath,
|
|
76
|
+
forgotPasswordUrl: options.forgotPasswordPath,
|
|
77
|
+
email: data.email ?? undefined,
|
|
78
|
+
errorCode: data.error ?? undefined,
|
|
79
|
+
redirect: data.redirectPath,
|
|
80
|
+
loginUrl: options.loginPath,
|
|
81
|
+
brand: rendererBrand(options),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function verifyCodeRendererPayload(options, data) {
|
|
85
|
+
return {
|
|
86
|
+
codeRequestUrl: options.codeRequestPath,
|
|
87
|
+
codeVerifyUrl: options.codeVerifyPath,
|
|
88
|
+
email: data.email ?? undefined,
|
|
89
|
+
errorCode: data.error ?? undefined,
|
|
90
|
+
sent: data.sent ? true : undefined,
|
|
91
|
+
redirect: data.redirectPath,
|
|
92
|
+
loginUrl: options.loginPath,
|
|
93
|
+
brand: rendererBrand(options),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
62
96
|
//# sourceMappingURL=renderers.js.map
|
package/dist/renderers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-request.d.ts","sourceRoot":"","sources":["../../../src/routes/api/code-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,YAAY,EAIjB,MAAM,aAAa,CAAA;AAEpB,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBnE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { authClient, getConfig, readForm, readFormString, statusRedirect, } from './shared.js';
|
|
2
|
+
export async function POST(context) {
|
|
3
|
+
const options = getConfig();
|
|
4
|
+
if (!options.providers.includes('email-code')) {
|
|
5
|
+
return new Response('Not found', { status: 404 });
|
|
6
|
+
}
|
|
7
|
+
const form = await readForm(context);
|
|
8
|
+
const email = await readFormString(form, 'email');
|
|
9
|
+
const redirect = form.get('redirect')?.toString();
|
|
10
|
+
const result = await authClient(context).code.request({ email });
|
|
11
|
+
return statusRedirect(context, result, options.verifyCodePath, { email, sent: '1', redirect }, options.verifyCodePath, { email, redirect });
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=code-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-request.js","sourceRoot":"","sources":["../../../src/routes/api/code-request.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,SAAS,EAET,QAAQ,EACR,cAAc,EACd,cAAc,GACd,MAAM,aAAa,CAAA;AAEpB,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAqB;IAC/C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAEhE,OAAO,cAAc,CACpB,OAAO,EACP,MAAM,EACN,OAAO,CAAC,cAAc,EACtB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAC9B,OAAO,CAAC,cAAc,EACtB,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-verify.d.ts","sourceRoot":"","sources":["../../../src/routes/api/code-verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,YAAY,EAGjB,MAAM,aAAa,CAAA;AAEpB,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAenE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { authClient, callbackRedirect, getConfig, readForm, readFormString, } from './shared.js';
|
|
2
|
+
export async function POST(context) {
|
|
3
|
+
const options = getConfig();
|
|
4
|
+
if (!options.providers.includes('email-code')) {
|
|
5
|
+
return new Response('Not found', { status: 404 });
|
|
6
|
+
}
|
|
7
|
+
const form = await readForm(context);
|
|
8
|
+
const email = await readFormString(form, 'email');
|
|
9
|
+
const code = await readFormString(form, 'code');
|
|
10
|
+
const result = await authClient(context).code.verify({ email, code });
|
|
11
|
+
return callbackRedirect(context, result, options.verifyCodePath, {
|
|
12
|
+
email,
|
|
13
|
+
redirect: form.get('redirect')?.toString(),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=code-verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-verify.js","sourceRoot":"","sources":["../../../src/routes/api/code-verify.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,SAAS,EAET,QAAQ,EACR,cAAc,GACd,MAAM,aAAa,CAAA;AAEpB,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAqB;IAC/C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAErE,OAAO,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAChE,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE;KAC1C,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-reset-confirm.d.ts","sourceRoot":"","sources":["../../../src/routes/api/password-reset-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,YAAY,EAIjB,MAAM,aAAa,CAAA;AAEpB,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBnE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { authClient, getConfig, readForm, readFormString, statusRedirect, } from './shared.js';
|
|
2
|
+
export async function POST(context) {
|
|
3
|
+
const options = getConfig();
|
|
4
|
+
if (!options.providers.includes('password')) {
|
|
5
|
+
return new Response('Not found', { status: 404 });
|
|
6
|
+
}
|
|
7
|
+
const form = await readForm(context);
|
|
8
|
+
const token = await readFormString(form, 'token');
|
|
9
|
+
const password = await readFormString(form, 'password', { trim: false });
|
|
10
|
+
const result = await authClient(context).password.reset.confirm({
|
|
11
|
+
token,
|
|
12
|
+
newPassword: password,
|
|
13
|
+
});
|
|
14
|
+
return statusRedirect(context, result, options.loginPath, { reset: 'success' }, options.resetPasswordPath, { token });
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=password-reset-confirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-reset-confirm.js","sourceRoot":"","sources":["../../../src/routes/api/password-reset-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,SAAS,EAET,QAAQ,EACR,cAAc,EACd,cAAc,GACd,MAAM,aAAa,CAAA;AAEpB,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAqB;IAC/C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACxE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/D,KAAK;QACL,WAAW,EAAE,QAAQ;KACrB,CAAC,CAAA;IAEF,OAAO,cAAc,CACpB,OAAO,EACP,MAAM,EACN,OAAO,CAAC,SAAS,EACjB,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,OAAO,CAAC,iBAAiB,EACzB,EAAE,KAAK,EAAE,CACT,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-reset-request.d.ts","sourceRoot":"","sources":["../../../src/routes/api/password-reset-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,YAAY,EAIjB,MAAM,aAAa,CAAA;AAEpB,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkBnE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { authClient, getConfig, readForm, readFormString, statusRedirect, } from './shared.js';
|
|
2
|
+
export async function POST(context) {
|
|
3
|
+
const options = getConfig();
|
|
4
|
+
if (!options.providers.includes('password')) {
|
|
5
|
+
return new Response('Not found', { status: 404 });
|
|
6
|
+
}
|
|
7
|
+
const form = await readForm(context);
|
|
8
|
+
const email = await readFormString(form, 'email');
|
|
9
|
+
const result = await authClient(context).password.reset.request({ email });
|
|
10
|
+
return statusRedirect(context, result, options.forgotPasswordPath, { sent: '1' }, options.forgotPasswordPath, { email });
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=password-reset-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-reset-request.js","sourceRoot":"","sources":["../../../src/routes/api/password-reset-request.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,SAAS,EAET,QAAQ,EACR,cAAc,EACd,cAAc,GACd,MAAM,aAAa,CAAA;AAEpB,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAqB;IAC/C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAE1E,OAAO,cAAc,CACpB,OAAO,EACP,MAAM,EACN,OAAO,CAAC,kBAAkB,EAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,OAAO,CAAC,kBAAkB,EAC1B,EAAE,KAAK,EAAE,CACT,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-verify.d.ts","sourceRoot":"","sources":["../../../src/routes/api/password-verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,YAAY,EAGjB,MAAM,aAAa,CAAA;AAEpB,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAenE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { authClient, callbackRedirect, getConfig, readForm, readFormString, } from './shared.js';
|
|
2
|
+
export async function POST(context) {
|
|
3
|
+
const options = getConfig();
|
|
4
|
+
if (!options.providers.includes('password')) {
|
|
5
|
+
return new Response('Not found', { status: 404 });
|
|
6
|
+
}
|
|
7
|
+
const form = await readForm(context);
|
|
8
|
+
const email = await readFormString(form, 'email');
|
|
9
|
+
const password = await readFormString(form, 'password', { trim: false });
|
|
10
|
+
const result = await authClient(context).password.verify({ email, password });
|
|
11
|
+
return callbackRedirect(context, result, options.passwordPath, {
|
|
12
|
+
email,
|
|
13
|
+
redirect: form.get('redirect')?.toString(),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=password-verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-verify.js","sourceRoot":"","sources":["../../../src/routes/api/password-verify.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,SAAS,EAET,QAAQ,EACR,cAAc,GACd,MAAM,aAAa,CAAA;AAEpB,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAqB;IAC/C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACxE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IAE7E,OAAO,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE;QAC9D,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE;KAC1C,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getConfig } from '../../config-store.js';
|
|
2
|
+
import { type AuthClientCodeResult, type AuthClientOkResult, authClient } from '../../server.js';
|
|
3
|
+
import { type RouteContext, readForm, redirectTo } from '../flow.js';
|
|
4
|
+
export declare function readFormString(form: FormData, key: string, options?: {
|
|
5
|
+
trim?: boolean;
|
|
6
|
+
}): Promise<string>;
|
|
7
|
+
export declare function callbackRedirect(context: RouteContext, result: AuthClientCodeResult, errorPath: string, errorParams: Record<string, string | undefined>): Response;
|
|
8
|
+
export declare function statusRedirect(context: RouteContext, result: AuthClientOkResult, successPath: string, successParams: Record<string, string | undefined>, errorPath: string, errorParams: Record<string, string | undefined>): Response;
|
|
9
|
+
export type { RouteContext };
|
|
10
|
+
export { authClient, getConfig, readForm, redirectTo };
|
|
11
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/routes/api/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEhG,OAAO,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEpE,wBAAsB,cAAc,CACnC,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC7C,QAAQ,CAeV;AAED,wBAAgB,cAAc,CAC7B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACjD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC7C,QAAQ,CAKV;AAED,YAAY,EAAE,YAAY,EAAE,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA"}
|