@growth-labs/auth 0.3.3 → 0.3.5
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 +20 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +4 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +2 -0
- package/dist/options.js.map +1 -1
- package/dist/renderers.d.ts +50 -0
- package/dist/renderers.d.ts.map +1 -0
- package/dist/renderers.js +53 -0
- package/dist/renderers.js.map +1 -0
- package/dist/routes/callback.d.ts +1 -1
- package/dist/routes/callback.d.ts.map +1 -1
- package/dist/routes/callback.js +4 -10
- package/dist/routes/callback.js.map +1 -1
- package/dist/routes/forgot-password.d.ts.map +1 -1
- package/dist/routes/forgot-password.js +9 -0
- package/dist/routes/forgot-password.js.map +1 -1
- package/dist/routes/login.d.ts.map +1 -1
- package/dist/routes/login.js +12 -6
- package/dist/routes/login.js.map +1 -1
- package/dist/routes/reset-password.d.ts.map +1 -1
- package/dist/routes/reset-password.js +9 -0
- package/dist/routes/reset-password.js.map +1 -1
- package/dist/runtime.d.ts +2 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +5 -0
- package/dist/runtime.js.map +1 -0
- package/dist/types.d.ts +45 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vite-plugin.d.ts +4 -0
- package/dist/vite-plugin.d.ts.map +1 -0
- package/dist/vite-plugin.js +18 -0
- package/dist/vite-plugin.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,6 +25,11 @@ auth({
|
|
|
25
25
|
brandName: 'FEDweek',
|
|
26
26
|
logoUrl: 'https://media.fedweek.com/logos/header.png',
|
|
27
27
|
},
|
|
28
|
+
renderers: {
|
|
29
|
+
// Optional all-or-nothing UI overrides per auth surface.
|
|
30
|
+
// Flow logic, cookies, callback exchange, and issuer URLs remain package-owned.
|
|
31
|
+
login: async (payload) => `<main>${payload.brand.title}</main>`,
|
|
32
|
+
},
|
|
28
33
|
accessTokenMaxAge: 900, // 15 min (seconds)
|
|
29
34
|
refreshTokenMaxAge: 2592000, // 30 days
|
|
30
35
|
})
|
|
@@ -45,6 +50,18 @@ auth({
|
|
|
45
50
|
- `GET /api/auth/callback` — OAuth callback handler (PKCE code exchange, cookie setting)
|
|
46
51
|
- `GET /forgot-password` / `GET /reset-password` — local redirects to issuer-owned password UI
|
|
47
52
|
|
|
53
|
+
## Branded Auth UI
|
|
54
|
+
|
|
55
|
+
Consumers can supply `renderers.login`, `renderers.forgotPassword`, and
|
|
56
|
+
`renderers.resetPassword` in `auth()` options. Each renderer receives a
|
|
57
|
+
typed payload from `@growth-labs/auth/types` with package-built provider
|
|
58
|
+
or issuer URLs and brand values, then returns either an HTML string or a
|
|
59
|
+
`Response`.
|
|
60
|
+
|
|
61
|
+
Renderers replace only GET form views. `/login?provider=...`, callback,
|
|
62
|
+
logout, token exchange, cookies, and issuer redirects remain package-owned.
|
|
63
|
+
If a renderer is omitted, the current default behavior is unchanged.
|
|
64
|
+
|
|
48
65
|
## Using `context.locals.user`
|
|
49
66
|
|
|
50
67
|
```typescript
|
|
@@ -73,6 +90,8 @@ type User = AuthenticatedUser | UnauthenticatedUser
|
|
|
73
90
|
|
|
74
91
|
`GL_IDENTITY_SECRET` is required when analytics dashboards need logged-in vs anonymous segmentation. It must be a 32-byte secret encoded with standard base64 and should be unique per tenant.
|
|
75
92
|
|
|
93
|
+
Injected routes read Worker bindings from `cloudflare:workers`, matching Astro 6 + `@astrojs/cloudflare` v13. They do not rely on `Astro.locals.runtime` or `context.locals.runtime`.
|
|
94
|
+
|
|
76
95
|
The issuer needs KV + D1 — see `growth-labs/identity-platform` for the production runtime shape, or `apps/auth-server/README.md` here for the minimal sample.
|
|
77
96
|
|
|
78
97
|
## Integration Order
|
|
@@ -140,5 +159,6 @@ in their app.
|
|
|
140
159
|
- CSRF state parameter verified on callback
|
|
141
160
|
- 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
|
|
142
161
|
- Forgot/reset password routes are issuer-owned redirects, not local form UIs
|
|
162
|
+
- Branded auth screens use `renderers`, not consumer-local shadow routes
|
|
143
163
|
- No `aud` claim validation in this package — single client per issuer assumed
|
|
144
164
|
- `.astro` component files ship as source, not compiled
|
package/dist/index.d.ts
CHANGED
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI/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;AA4BD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,CAyDvE"}
|
package/dist/index.js
CHANGED
|
@@ -4,9 +4,30 @@ const ENTRYPOINT_EXTENSION = import.meta.url.endsWith('.ts') ? '.ts' : '.js';
|
|
|
4
4
|
function resolveEntrypoint(path) {
|
|
5
5
|
return decodeURIComponent(new URL(`${path}${ENTRYPOINT_EXTENSION}`, import.meta.url).pathname);
|
|
6
6
|
}
|
|
7
|
+
function renderersPlugin(renderers) {
|
|
8
|
+
return {
|
|
9
|
+
name: '@growth-labs/auth:renderers',
|
|
10
|
+
resolveId(id) {
|
|
11
|
+
if (id === 'virtual:growth-labs/auth/renderers')
|
|
12
|
+
return '\0virtual:growth-labs/auth/renderers';
|
|
13
|
+
},
|
|
14
|
+
load(id) {
|
|
15
|
+
if (id !== '\0virtual:growth-labs/auth/renderers')
|
|
16
|
+
return;
|
|
17
|
+
const lines = ['export const renderers = {};'];
|
|
18
|
+
for (const [surface, renderer] of Object.entries(renderers)) {
|
|
19
|
+
if (typeof renderer === 'function') {
|
|
20
|
+
lines.push(`renderers[${JSON.stringify(surface)}] = ${renderer.toString()};`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return lines.join('\n');
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
7
27
|
export default function auth(userOptions) {
|
|
8
28
|
const options = authOptionsSchema.parse(userOptions);
|
|
9
29
|
_setConfig(options);
|
|
30
|
+
const serializableOptions = { ...options, renderers: {} };
|
|
10
31
|
return {
|
|
11
32
|
name: '@growth-labs/auth',
|
|
12
33
|
hooks: {
|
|
@@ -14,8 +35,9 @@ export default function auth(userOptions) {
|
|
|
14
35
|
updateConfig({
|
|
15
36
|
vite: {
|
|
16
37
|
define: {
|
|
17
|
-
'globalThis.__GL_AUTH_CONFIG__': JSON.stringify(
|
|
38
|
+
'globalThis.__GL_AUTH_CONFIG__': JSON.stringify(serializableOptions),
|
|
18
39
|
},
|
|
40
|
+
plugins: [renderersPlugin(options.renderers)],
|
|
19
41
|
},
|
|
20
42
|
});
|
|
21
43
|
addMiddleware({
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/options.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { AuthRenderers } from './types.js';
|
|
2
3
|
export declare const authOptionsSchema: z.ZodObject<{
|
|
3
4
|
issuer: z.ZodString;
|
|
4
5
|
clientId: z.ZodOptional<z.ZodString>;
|
|
@@ -26,6 +27,7 @@ export declare const authOptionsSchema: z.ZodObject<{
|
|
|
26
27
|
brandName?: string | undefined;
|
|
27
28
|
logoUrl?: string | undefined;
|
|
28
29
|
}>>;
|
|
30
|
+
renderers: z.ZodDefault<z.ZodType<AuthRenderers, z.ZodTypeDef, AuthRenderers>>;
|
|
29
31
|
}, "strip", z.ZodTypeAny, {
|
|
30
32
|
issuer: string;
|
|
31
33
|
cookiePrefix: string;
|
|
@@ -43,6 +45,7 @@ export declare const authOptionsSchema: z.ZodObject<{
|
|
|
43
45
|
brandName?: string | undefined;
|
|
44
46
|
logoUrl?: string | undefined;
|
|
45
47
|
};
|
|
48
|
+
renderers: AuthRenderers;
|
|
46
49
|
clientId?: string | undefined;
|
|
47
50
|
sessionCookieDomain?: string | undefined;
|
|
48
51
|
}, {
|
|
@@ -64,6 +67,7 @@ export declare const authOptionsSchema: z.ZodObject<{
|
|
|
64
67
|
brandName?: string | undefined;
|
|
65
68
|
logoUrl?: string | undefined;
|
|
66
69
|
} | undefined;
|
|
70
|
+
renderers?: AuthRenderers | undefined;
|
|
67
71
|
}>;
|
|
68
72
|
export type AuthOptions = z.input<typeof authOptionsSchema>;
|
|
69
73
|
export type ResolvedAuthOptions = z.output<typeof authOptionsSchema>;
|
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;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC5B,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
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;
|
|
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,mBAAmB;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAExB,0BAA0B;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE/B,+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;IAExD,oBAAoB;IACpB,SAAS,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;SACnD,OAAO,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAE/C,mCAAmC;IACnC,SAAS,EAAE,CAAC;SACV,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;QACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IAEb,sCAAsC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { AuthRendererBrand, AuthRendererResult, AuthRenderers, ForgotPasswordRendererPayload, LoginRendererPayload, ResetPasswordRendererPayload } from './types.js';
|
|
2
|
+
export declare function getRenderer<K extends keyof AuthRenderers>(surface: K, options: {
|
|
3
|
+
renderers?: AuthRenderers;
|
|
4
|
+
}): AuthRenderers[K] | undefined;
|
|
5
|
+
export declare function renderHtmlResponse(result: AuthRendererResult): Promise<Response>;
|
|
6
|
+
export declare function rendererBrand(options: {
|
|
7
|
+
loginPage: {
|
|
8
|
+
title: string;
|
|
9
|
+
brandName?: string;
|
|
10
|
+
logoUrl?: string;
|
|
11
|
+
};
|
|
12
|
+
}): AuthRendererBrand;
|
|
13
|
+
export declare function loginRendererPayload(options: {
|
|
14
|
+
loginPage: {
|
|
15
|
+
title: string;
|
|
16
|
+
brandName?: string;
|
|
17
|
+
logoUrl?: string;
|
|
18
|
+
};
|
|
19
|
+
loginPath: string;
|
|
20
|
+
providers: string[];
|
|
21
|
+
}, data: {
|
|
22
|
+
redirectPath: string;
|
|
23
|
+
error: string | null;
|
|
24
|
+
reset: string | null;
|
|
25
|
+
}): LoginRendererPayload;
|
|
26
|
+
export declare function forgotPasswordRendererPayload(options: {
|
|
27
|
+
loginPage: {
|
|
28
|
+
title: string;
|
|
29
|
+
brandName?: string;
|
|
30
|
+
logoUrl?: string;
|
|
31
|
+
};
|
|
32
|
+
loginPath: string;
|
|
33
|
+
}, data: {
|
|
34
|
+
forgotPasswordUrl: string;
|
|
35
|
+
error: string | null;
|
|
36
|
+
sent: string | null;
|
|
37
|
+
}): ForgotPasswordRendererPayload;
|
|
38
|
+
export declare function resetPasswordRendererPayload(options: {
|
|
39
|
+
loginPage: {
|
|
40
|
+
title: string;
|
|
41
|
+
brandName?: string;
|
|
42
|
+
logoUrl?: string;
|
|
43
|
+
};
|
|
44
|
+
loginPath: string;
|
|
45
|
+
}, data: {
|
|
46
|
+
resetPasswordUrl: string;
|
|
47
|
+
error: string | null;
|
|
48
|
+
token: string | null;
|
|
49
|
+
}): ResetPasswordRendererPayload;
|
|
50
|
+
//# sourceMappingURL=renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,MAAM,YAAY,CAAA;AAEnB,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,aAAa,EACxD,OAAO,EAAE,CAAC,EACV,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,aAAa,CAAA;CAAE,GACpC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAE9B;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;CACpB,GACC,oBAAoB,CAetB;AAED,wBAAgB,6BAA6B,CAC5C,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;CACjB,EACD,IAAI,EAAE;IACL,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACnB,GACC,6BAA6B,CAQ/B;AAED,wBAAgB,4BAA4B,CAC3C,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;CACjB,EACD,IAAI,EAAE;IACL,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,GACC,4BAA4B,CAQ9B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { renderers as bundledRenderers } from 'virtual:growth-labs/auth/renderers';
|
|
2
|
+
export function getRenderer(surface, options) {
|
|
3
|
+
return bundledRenderers[surface] ?? options.renderers?.[surface];
|
|
4
|
+
}
|
|
5
|
+
export async function renderHtmlResponse(result) {
|
|
6
|
+
const rendered = await result;
|
|
7
|
+
if (rendered instanceof Response) {
|
|
8
|
+
return rendered;
|
|
9
|
+
}
|
|
10
|
+
return new Response(rendered, {
|
|
11
|
+
headers: { 'Content-Type': 'text/html; charset=utf-8' },
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export function rendererBrand(options) {
|
|
15
|
+
return {
|
|
16
|
+
title: options.loginPage.title,
|
|
17
|
+
brandName: options.loginPage.brandName ?? '',
|
|
18
|
+
logoUrl: options.loginPage.logoUrl ?? '',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function loginRendererPayload(options, data) {
|
|
22
|
+
const makeStartUrl = (provider) => `${options.loginPath}?provider=${encodeURIComponent(provider)}&redirect=${encodeURIComponent(data.redirectPath)}`;
|
|
23
|
+
return {
|
|
24
|
+
providerUrls: {
|
|
25
|
+
google: options.providers.includes('google') ? makeStartUrl('google') : undefined,
|
|
26
|
+
password: options.providers.includes('password') ? makeStartUrl('password') : undefined,
|
|
27
|
+
emailCode: options.providers.includes('email-code') ? makeStartUrl('email-code') : undefined,
|
|
28
|
+
},
|
|
29
|
+
errorCode: data.error ?? undefined,
|
|
30
|
+
reset: data.reset ? true : undefined,
|
|
31
|
+
redirect: data.redirectPath,
|
|
32
|
+
brand: rendererBrand(options),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function forgotPasswordRendererPayload(options, data) {
|
|
36
|
+
return {
|
|
37
|
+
forgotPasswordUrl: data.forgotPasswordUrl,
|
|
38
|
+
errorCode: data.error ?? undefined,
|
|
39
|
+
sent: data.sent ? true : undefined,
|
|
40
|
+
loginUrl: options.loginPath,
|
|
41
|
+
brand: rendererBrand(options),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function resetPasswordRendererPayload(options, data) {
|
|
45
|
+
return {
|
|
46
|
+
resetPasswordUrl: data.resetPasswordUrl,
|
|
47
|
+
errorCode: data.error ?? undefined,
|
|
48
|
+
token: data.token ?? undefined,
|
|
49
|
+
loginUrl: options.loginPath,
|
|
50
|
+
brand: rendererBrand(options),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAUlF,MAAM,UAAU,WAAW,CAC1B,OAAU,EACV,OAAsC;IAEtC,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA0B;IAClE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAA;IAC7B,IAAI,QAAQ,YAAY,QAAQ,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAA;IAChB,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;QAC7B,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;KACvD,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAE7B;IACA,OAAO;QACN,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE;QAC5C,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE;KACxC,CAAA;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,OAIC,EACD,IAIC;IAED,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE,CACzC,GAAG,OAAO,CAAC,SAAS,aAAa,kBAAkB,CAAC,QAAQ,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAA;IAElH,OAAO;QACN,YAAY,EAAE;YACb,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACjF,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YACvF,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5F;QACD,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACpC,QAAQ,EAAE,IAAI,CAAC,YAAY;QAC3B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;KAC7B,CAAA;AACF,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC5C,OAGC,EACD,IAIC;IAED,OAAO;QACN,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAClC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAClC,QAAQ,EAAE,OAAO,CAAC,SAAS;QAC3B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;KAC7B,CAAA;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC3C,OAGC,EACD,IAIC;IAED,OAAO;QACN,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAClC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9B,QAAQ,EAAE,OAAO,CAAC,SAAS;QAC3B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;KAC7B,CAAA;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../src/routes/callback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../src/routes/callback.ts"],"names":[],"mappings":"AAaA,UAAU,eAAe;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CAC/C;AAOD,wBAAsB,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4ErE"}
|
package/dist/routes/callback.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { getConfig } from '../config-store.js';
|
|
2
|
+
import { getRuntimeEnv } from '../runtime.js';
|
|
2
3
|
import { analyticsAvailable, emitAuthEvent } from '../utils/analytics.js';
|
|
3
4
|
import { clearAuthFlowCookies, getCookie, setIdentityCookie, setTokenCookies, } from '../utils/cookies.js';
|
|
4
5
|
import { createIdentityCookiePayload, signIdentityCookie } from '../utils/identity-cookie.js';
|
|
5
6
|
import { exchangeCode } from '../utils/openauth.js';
|
|
6
7
|
import { verifyState } from '../utils/state.js';
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
function getIdentitySecret(context) {
|
|
11
|
-
const runtime = context.locals.runtime;
|
|
12
|
-
if (!isRecord(runtime) || !isRecord(runtime.env)) {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
const secret = runtime.env.GL_IDENTITY_SECRET;
|
|
8
|
+
function getIdentitySecret() {
|
|
9
|
+
const secret = getRuntimeEnv().GL_IDENTITY_SECRET;
|
|
16
10
|
return typeof secret === 'string' && secret.length > 0 ? secret : null;
|
|
17
11
|
}
|
|
18
12
|
export async function GET(context) {
|
|
@@ -49,7 +43,7 @@ export async function GET(context) {
|
|
|
49
43
|
});
|
|
50
44
|
setTokenCookies(mutableResponse, options, tokenResponse.accessToken, tokenResponse.refreshToken);
|
|
51
45
|
clearAuthFlowCookies(mutableResponse, options);
|
|
52
|
-
const identitySecret = getIdentitySecret(
|
|
46
|
+
const identitySecret = getIdentitySecret();
|
|
53
47
|
if (identitySecret) {
|
|
54
48
|
try {
|
|
55
49
|
setIdentityCookie(mutableResponse, await signIdentityCookie(await createIdentityCookiePayload(tokenResponse.claims.sub, identitySecret), identitySecret));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/routes/callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EACN,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,eAAe,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAS/C,SAAS,
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/routes/callback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgot-password.d.ts","sourceRoot":"","sources":["../../src/routes/forgot-password.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"forgot-password.d.ts","sourceRoot":"","sources":["../../src/routes/forgot-password.ts"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;CACR;AAED,wBAAsB,GAAG,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuB3E"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getConfig } from '../config-store.js';
|
|
2
|
+
import { forgotPasswordRendererPayload, getRenderer, renderHtmlResponse } from '../renderers.js';
|
|
2
3
|
import { getForgotPasswordUrl } from '../utils/openauth.js';
|
|
3
4
|
export async function GET(context) {
|
|
4
5
|
const options = getConfig();
|
|
@@ -7,6 +8,14 @@ export async function GET(context) {
|
|
|
7
8
|
}
|
|
8
9
|
const target = new URL(getForgotPasswordUrl());
|
|
9
10
|
target.search = context.url.search;
|
|
11
|
+
const renderer = getRenderer('forgotPassword', options);
|
|
12
|
+
if (renderer) {
|
|
13
|
+
return renderHtmlResponse(renderer(forgotPasswordRendererPayload(options, {
|
|
14
|
+
forgotPasswordUrl: target.toString(),
|
|
15
|
+
error: context.url.searchParams.get('error'),
|
|
16
|
+
sent: context.url.searchParams.get('sent'),
|
|
17
|
+
})));
|
|
18
|
+
}
|
|
10
19
|
return Response.redirect(target.toString(), 302);
|
|
11
20
|
}
|
|
12
21
|
//# sourceMappingURL=forgot-password.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgot-password.js","sourceRoot":"","sources":["../../src/routes/forgot-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAO3D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAA8B;IACvD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,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,MAAM,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"forgot-password.js","sourceRoot":"","sources":["../../src/routes/forgot-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAO3D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAA8B;IACvD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,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,MAAM,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAA;IAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IACvD,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,kBAAkB,CACxB,QAAQ,CACP,6BAA6B,CAAC,OAAO,EAAE;YACtC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE;YACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAC5C,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;SAC1C,CAAC,CACF,CACD,CAAA;IACF,CAAC;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/routes/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/routes/login.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;CACR;AAMD,wBAAsB,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyClE"}
|
package/dist/routes/login.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { loginPageScript } from '../client/login-page.js';
|
|
2
2
|
import { getConfig } from '../config-store.js';
|
|
3
|
+
import { getRenderer, loginRendererPayload, renderHtmlResponse } from '../renderers.js';
|
|
3
4
|
import { setAuthFlowCookies } from '../utils/cookies.js';
|
|
4
5
|
import { createAuthFlow, getAuthorizationUrl } from '../utils/openauth.js';
|
|
5
6
|
function _shouldShowForgotLink(options) {
|
|
@@ -25,17 +26,22 @@ export async function GET(context) {
|
|
|
25
26
|
setAuthFlowCookies(response, options, authFlow.verifier, authFlow.state, redirectPath, selectedProvider);
|
|
26
27
|
return response;
|
|
27
28
|
}
|
|
28
|
-
const
|
|
29
|
+
const data = { redirectPath, error, reset };
|
|
30
|
+
const renderer = getRenderer('login', options);
|
|
31
|
+
if (renderer) {
|
|
32
|
+
return renderHtmlResponse(renderer(loginRendererPayload(options, data)));
|
|
33
|
+
}
|
|
34
|
+
const html = renderLoginPage(options, data);
|
|
29
35
|
return new Response(html, {
|
|
30
36
|
headers: { 'Content-Type': 'text/html; charset=utf-8' },
|
|
31
37
|
});
|
|
32
38
|
}
|
|
33
39
|
function renderLoginPage(options, data) {
|
|
34
|
-
const { loginPage, providers
|
|
40
|
+
const { loginPage, providers } = options;
|
|
35
41
|
const availableProviders = providers.filter((provider) => ['google', 'password', 'email-code'].includes(provider));
|
|
36
42
|
const hasGoogle = availableProviders.includes('google');
|
|
37
43
|
const hasAlternativeProvider = availableProviders.includes('password') || availableProviders.includes('email-code');
|
|
38
|
-
const
|
|
44
|
+
const payload = loginRendererPayload(options, data);
|
|
39
45
|
return `<!DOCTYPE html>
|
|
40
46
|
<html lang="en">
|
|
41
47
|
<head>
|
|
@@ -63,15 +69,15 @@ function renderLoginPage(options, data) {
|
|
|
63
69
|
${data.reset ? '<p class="success">Password reset successfully. Sign in with your new password.</p>' : ''}
|
|
64
70
|
${data.error ? '<p class="error">Authentication failed. Please try again.</p>' : ''}
|
|
65
71
|
${hasGoogle
|
|
66
|
-
? `<a href="${
|
|
72
|
+
? `<a href="${payload.providerUrls.google}" class="btn btn-google" data-provider="google">Sign in with Google</a>`
|
|
67
73
|
: ''}
|
|
68
74
|
${hasGoogle && hasAlternativeProvider ? '<div class="divider">or</div>' : ''}
|
|
69
75
|
${availableProviders.includes('email-code')
|
|
70
|
-
? `<a href="${
|
|
76
|
+
? `<a href="${payload.providerUrls.emailCode}" class="btn" data-provider="email-code">Sign in with email</a>`
|
|
71
77
|
: ''}
|
|
72
78
|
${availableProviders.includes('password')
|
|
73
79
|
? `
|
|
74
|
-
<a href="${
|
|
80
|
+
<a href="${payload.providerUrls.password}" class="btn" data-provider="password">Sign in with password</a>
|
|
75
81
|
<a href="${options.forgotPasswordPath}" class="forgot-link">Forgot password?</a>`
|
|
76
82
|
: ''}
|
|
77
83
|
<script>${loginPageScript()}</script>
|
package/dist/routes/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/routes/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAO1E,SAAS,qBAAqB,CAAC,OAAqC;IACnE,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAqB;IAC9C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAA;IACpE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEnD,IACC,gBAAgB;QAChB,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAsD,CAAC,EACjF,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,cAAc,GAAG,gBAAgB,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAA;QACpF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC1F,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACpD,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,OAAO,EAAE,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC;SAC9C,CAAC,CAAA;QACF,kBAAkB,CACjB,QAAQ,EACR,OAAO,EACP,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,KAAK,EACd,YAAY,EACZ,gBAAgB,CAChB,CAAA;QACD,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/routes/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset-password.d.ts","sourceRoot":"","sources":["../../src/routes/reset-password.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reset-password.d.ts","sourceRoot":"","sources":["../../src/routes/reset-password.ts"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;CACR;AAED,wBAAsB,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuB1E"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getConfig } from '../config-store.js';
|
|
2
|
+
import { getRenderer, renderHtmlResponse, resetPasswordRendererPayload } from '../renderers.js';
|
|
2
3
|
import { getResetPasswordUrl } from '../utils/openauth.js';
|
|
3
4
|
export async function GET(context) {
|
|
4
5
|
const options = getConfig();
|
|
@@ -7,6 +8,14 @@ export async function GET(context) {
|
|
|
7
8
|
}
|
|
8
9
|
const target = new URL(getResetPasswordUrl());
|
|
9
10
|
target.search = context.url.search;
|
|
11
|
+
const renderer = getRenderer('resetPassword', options);
|
|
12
|
+
if (renderer) {
|
|
13
|
+
return renderHtmlResponse(renderer(resetPasswordRendererPayload(options, {
|
|
14
|
+
resetPasswordUrl: target.toString(),
|
|
15
|
+
error: context.url.searchParams.get('error'),
|
|
16
|
+
token: context.url.searchParams.get('token'),
|
|
17
|
+
})));
|
|
18
|
+
}
|
|
10
19
|
return Response.redirect(target.toString(), 302);
|
|
11
20
|
}
|
|
12
21
|
//# sourceMappingURL=reset-password.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset-password.js","sourceRoot":"","sources":["../../src/routes/reset-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAO1D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAA6B;IACtD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,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,MAAM,GAAG,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAC7C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"reset-password.js","sourceRoot":"","sources":["../../src/routes/reset-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAO1D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAA6B;IACtD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,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,MAAM,GAAG,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAC7C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAA;IAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,kBAAkB,CACxB,QAAQ,CACP,4BAA4B,CAAC,OAAO,EAAE;YACrC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE;YACnC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;SAC5C,CAAC,CACF,CACD,CAAA;IACF,CAAC;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,UAAU,aAAa;IAC5B,OAAO,aAAwC,CAAA;AAChD,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,6 +9,51 @@ export interface UnauthenticatedUser {
|
|
|
9
9
|
authenticated: false;
|
|
10
10
|
}
|
|
11
11
|
export type User = AuthenticatedUser | UnauthenticatedUser;
|
|
12
|
+
export interface AuthRendererBrand {
|
|
13
|
+
title: string;
|
|
14
|
+
brandName: string;
|
|
15
|
+
logoUrl: string;
|
|
16
|
+
}
|
|
17
|
+
export interface LoginRendererPayload {
|
|
18
|
+
providerUrls: {
|
|
19
|
+
google?: string;
|
|
20
|
+
password?: string;
|
|
21
|
+
emailCode?: string;
|
|
22
|
+
};
|
|
23
|
+
errorCode?: 'auth_failed' | 'session_expired' | string;
|
|
24
|
+
reset?: boolean;
|
|
25
|
+
redirect: string;
|
|
26
|
+
brand: AuthRendererBrand;
|
|
27
|
+
}
|
|
28
|
+
export interface ForgotPasswordRendererPayload {
|
|
29
|
+
forgotPasswordUrl: string;
|
|
30
|
+
errorCode?: string;
|
|
31
|
+
sent?: boolean;
|
|
32
|
+
loginUrl: string;
|
|
33
|
+
brand: AuthRendererBrand;
|
|
34
|
+
}
|
|
35
|
+
export interface ResetPasswordRendererPayload {
|
|
36
|
+
resetPasswordUrl: string;
|
|
37
|
+
errorCode?: string;
|
|
38
|
+
token?: string;
|
|
39
|
+
loginUrl: string;
|
|
40
|
+
brand: AuthRendererBrand;
|
|
41
|
+
}
|
|
42
|
+
export interface EmailCodeConfirmRendererPayload {
|
|
43
|
+
loginUrl: string;
|
|
44
|
+
brand: AuthRendererBrand;
|
|
45
|
+
}
|
|
46
|
+
export type AuthRendererResult = string | Response | Promise<string | Response>;
|
|
47
|
+
export type LoginRenderer = (payload: LoginRendererPayload) => AuthRendererResult;
|
|
48
|
+
export type ForgotPasswordRenderer = (payload: ForgotPasswordRendererPayload) => AuthRendererResult;
|
|
49
|
+
export type ResetPasswordRenderer = (payload: ResetPasswordRendererPayload) => AuthRendererResult;
|
|
50
|
+
export type EmailCodeConfirmRenderer = (payload: EmailCodeConfirmRendererPayload) => AuthRendererResult;
|
|
51
|
+
export interface AuthRenderers {
|
|
52
|
+
login?: LoginRenderer;
|
|
53
|
+
forgotPassword?: ForgotPasswordRenderer;
|
|
54
|
+
resetPassword?: ResetPasswordRenderer;
|
|
55
|
+
emailCodeConfirm?: EmailCodeConfirmRenderer;
|
|
56
|
+
}
|
|
12
57
|
export interface TokenRefreshResult {
|
|
13
58
|
accessToken: string;
|
|
14
59
|
refreshToken: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,aAAa,EAAE,KAAK,CAAA;CACpB;AAED,MAAM,MAAM,IAAI,GAAG,iBAAiB,GAAG,mBAAmB,CAAA;AAE1D,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE;QACP,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACD;AAED,MAAM,WAAW,mBAAmB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAA;IAC1D,MAAM,EAAE;QACP,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACD;AAGD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,GAAG,CAAC;QACb,UAAU,MAAM;YACf,IAAI,EAAE,IAAI,CAAA;SACV;KACD;CACD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAKvD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAcxE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const VIRTUAL_MODULE_ID = 'virtual:growth-labs/auth/config';
|
|
2
|
+
const RESOLVED_VIRTUAL_MODULE_ID = `\0${VIRTUAL_MODULE_ID}`;
|
|
3
|
+
export function growthLabsAuthPlugin(config) {
|
|
4
|
+
return {
|
|
5
|
+
name: 'growth-labs-auth-config',
|
|
6
|
+
resolveId(id) {
|
|
7
|
+
if (id === VIRTUAL_MODULE_ID) {
|
|
8
|
+
return RESOLVED_VIRTUAL_MODULE_ID;
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
load(id) {
|
|
12
|
+
if (id === RESOLVED_VIRTUAL_MODULE_ID) {
|
|
13
|
+
return `export const config = ${JSON.stringify(config)};`;
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=vite-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAGA,MAAM,iBAAiB,GAAG,iCAAiC,CAAA;AAC3D,MAAM,0BAA0B,GAAG,KAAK,iBAAiB,EAAE,CAAA;AAE3D,MAAM,UAAU,oBAAoB,CAAC,MAA2B;IAC/D,OAAO;QACN,IAAI,EAAE,yBAAyB;QAC/B,SAAS,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,iBAAiB,EAAE,CAAC;gBAC9B,OAAO,0BAA0B,CAAA;YAClC,CAAC;QACF,CAAC;QACD,IAAI,CAAC,EAAE;YACN,IAAI,EAAE,KAAK,0BAA0B,EAAE,CAAC;gBACvC,OAAO,yBAAyB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAA;YAC1D,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC"}
|