@valencets/cms 0.4.0 → 0.5.0
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/dist/auth/auth-routes.d.ts.map +1 -1
- package/dist/auth/auth-routes.js +9 -3
- package/dist/auth/auth-routes.js.map +1 -1
- package/dist/auth/index.d.ts +3 -3
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +2 -2
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/middleware.d.ts +8 -0
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +38 -0
- package/dist/auth/middleware.js.map +1 -1
- package/dist/auth/session.d.ts +3 -2
- package/dist/auth/session.d.ts.map +1 -1
- package/dist/auth/session.js +9 -4
- package/dist/auth/session.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA4BxD,wBAAgB,mBAAmB,CAAE,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAS5E;AAUD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,GAC9B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAiG7B"}
|
package/dist/auth/auth-routes.js
CHANGED
|
@@ -4,9 +4,12 @@ import { verifyPassword } from './password.js';
|
|
|
4
4
|
import { createRateLimiter } from './rate-limit.js';
|
|
5
5
|
import { parseCookie } from './cookie.js';
|
|
6
6
|
import { safeQuery } from '../db/safe-query.js';
|
|
7
|
-
import { createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
7
|
+
import { createSession, validateSession, destroySession, destroyUserSessions, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
8
8
|
import { sanitizeIdentifier, isValidIdentifier } from '../db/sql-sanitize.js';
|
|
9
9
|
import { isAuthEnabled } from './auth-config.js';
|
|
10
|
+
function isEncrypted(req) {
|
|
11
|
+
return !!req.socket.encrypted;
|
|
12
|
+
}
|
|
10
13
|
const loginSchema = z.object({
|
|
11
14
|
email: z.string().min(1),
|
|
12
15
|
password: z.string().min(1)
|
|
@@ -68,12 +71,14 @@ export function createAuthRoutes(pool, collections) {
|
|
|
68
71
|
return;
|
|
69
72
|
}
|
|
70
73
|
loginLimiter.reset(email);
|
|
74
|
+
await destroyUserSessions(user.id, pool);
|
|
71
75
|
const sessionResult = await createSession(user.id, pool);
|
|
72
76
|
if (sessionResult.isErr()) {
|
|
73
77
|
sendErrorJson(res, 'Login failed', 500);
|
|
74
78
|
return;
|
|
75
79
|
}
|
|
76
|
-
const
|
|
80
|
+
const secure = isEncrypted(req);
|
|
81
|
+
const cookie = buildSessionCookie(sessionResult.value, 7200, secure);
|
|
77
82
|
res.writeHead(200, {
|
|
78
83
|
'Content-Type': 'application/json; charset=utf-8',
|
|
79
84
|
'Set-Cookie': cookie
|
|
@@ -88,9 +93,10 @@ export function createAuthRoutes(pool, collections) {
|
|
|
88
93
|
if (sessionId) {
|
|
89
94
|
await destroySession(sessionId, pool);
|
|
90
95
|
}
|
|
96
|
+
const secure = isEncrypted(req);
|
|
91
97
|
res.writeHead(200, {
|
|
92
98
|
'Content-Type': 'application/json; charset=utf-8',
|
|
93
|
-
'Set-Cookie': buildExpiredSessionCookie()
|
|
99
|
+
'Set-Cookie': buildExpiredSessionCookie(secure)
|
|
94
100
|
});
|
|
95
101
|
res.end(JSON.stringify({ message: 'Logged out' }));
|
|
96
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields } from './auth-config.js';
|
|
2
2
|
export type { AuthConfig } from './auth-config.js';
|
|
3
3
|
export { hashPassword, verifyPassword } from './password.js';
|
|
4
|
-
export { createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
5
|
-
export { createAuthMiddleware } from './middleware.js';
|
|
6
|
-
export type { AuthContext, AuthMiddleware } from './middleware.js';
|
|
4
|
+
export { createSession, validateSession, destroySession, destroyUserSessions, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
5
|
+
export { createAuthMiddleware, createCmsAuthValidator, createCmsAuthGuard } from './middleware.js';
|
|
6
|
+
export type { AuthContext, AuthMiddleware, CmsAuthGuardOptions } from './middleware.js';
|
|
7
7
|
export { generateCsrfToken, validateCsrfToken } from './csrf.js';
|
|
8
8
|
export { createAuthRoutes } from './auth-routes.js';
|
|
9
9
|
export { parseCookie } from './cookie.js';
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAEjJ,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAClG,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAEvF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/auth/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields } from './auth-config.js';
|
|
2
2
|
export { hashPassword, verifyPassword } from './password.js';
|
|
3
|
-
export { createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
4
|
-
export { createAuthMiddleware } from './middleware.js';
|
|
3
|
+
export { createSession, validateSession, destroySession, destroyUserSessions, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
4
|
+
export { createAuthMiddleware, createCmsAuthValidator, createCmsAuthGuard } from './middleware.js';
|
|
5
5
|
export { generateCsrfToken, validateCsrfToken } from './csrf.js';
|
|
6
6
|
export { createAuthRoutes } from './auth-routes.js';
|
|
7
7
|
export { parseCookie } from './cookie.js';
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGhG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGhG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAEjJ,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGlG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
2
|
import type { DbPool } from '@valencets/db';
|
|
3
|
+
import type { Middleware } from '@valencets/core/server';
|
|
4
|
+
import type { AuthResult } from '@valencets/core/server';
|
|
3
5
|
export interface AuthContext {
|
|
4
6
|
readonly userId: string;
|
|
5
7
|
readonly sessionId: string;
|
|
6
8
|
}
|
|
7
9
|
export type AuthMiddleware = (req: IncomingMessage, res: ServerResponse, next: (ctx: AuthContext) => void) => Promise<void>;
|
|
8
10
|
export declare function createAuthMiddleware(pool: DbPool): AuthMiddleware;
|
|
11
|
+
export declare function createCmsAuthValidator(pool: DbPool): (req: IncomingMessage) => Promise<AuthResult>;
|
|
12
|
+
export interface CmsAuthGuardOptions {
|
|
13
|
+
readonly redirectTo?: string;
|
|
14
|
+
readonly role?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function createCmsAuthGuard(pool: DbPool, options?: CmsAuthGuardOptions): Middleware;
|
|
9
17
|
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAA;AAK1E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAO3H,wBAAgB,oBAAoB,CAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CA6BlE;AAED,wBAAgB,sBAAsB,CAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,CA2BnG;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,kBAAkB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAW3F"}
|
package/dist/auth/middleware.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { createAuthGuard } from '@valencets/core/server';
|
|
1
2
|
import { validateSession } from './session.js';
|
|
2
3
|
import { parseCookie } from './cookie.js';
|
|
4
|
+
import { safeQuery } from '../db/safe-query.js';
|
|
3
5
|
export function createAuthMiddleware(pool) {
|
|
4
6
|
return async (req, res, next) => {
|
|
5
7
|
const cookieHeader = req.headers.cookie;
|
|
@@ -23,4 +25,40 @@ export function createAuthMiddleware(pool) {
|
|
|
23
25
|
next({ userId: result.value, sessionId });
|
|
24
26
|
};
|
|
25
27
|
}
|
|
28
|
+
export function createCmsAuthValidator(pool) {
|
|
29
|
+
return async (req) => {
|
|
30
|
+
const cookieHeader = req.headers.cookie;
|
|
31
|
+
if (!cookieHeader)
|
|
32
|
+
return { authenticated: false };
|
|
33
|
+
const sessionId = parseCookie(cookieHeader, 'cms_session');
|
|
34
|
+
if (!sessionId)
|
|
35
|
+
return { authenticated: false };
|
|
36
|
+
const sessionResult = await validateSession(sessionId, pool);
|
|
37
|
+
if (sessionResult.isErr())
|
|
38
|
+
return { authenticated: false };
|
|
39
|
+
const userId = sessionResult.value;
|
|
40
|
+
const userResult = await safeQuery(pool, 'SELECT id, role FROM users WHERE id = $1 AND deleted_at IS NULL LIMIT 1', [userId]);
|
|
41
|
+
if (userResult.isErr())
|
|
42
|
+
return { authenticated: false };
|
|
43
|
+
const user = userResult.value[0];
|
|
44
|
+
if (!user)
|
|
45
|
+
return { authenticated: false };
|
|
46
|
+
return {
|
|
47
|
+
authenticated: true,
|
|
48
|
+
user: { id: user.id, role: user.role ?? 'editor' }
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function createCmsAuthGuard(pool, options) {
|
|
53
|
+
const guardOptions = {
|
|
54
|
+
validate: createCmsAuthValidator(pool)
|
|
55
|
+
};
|
|
56
|
+
if (options?.redirectTo !== undefined) {
|
|
57
|
+
guardOptions.redirectTo = options.redirectTo;
|
|
58
|
+
}
|
|
59
|
+
if (options?.role !== undefined) {
|
|
60
|
+
guardOptions.role = options.role;
|
|
61
|
+
}
|
|
62
|
+
return createAuthGuard(guardOptions);
|
|
63
|
+
}
|
|
26
64
|
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/session.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ import type { DbPool } from '@valencets/db';
|
|
|
3
3
|
import type { CmsError } from '../schema/types.js';
|
|
4
4
|
export declare function createSession(userId: string, pool: DbPool): ResultAsync<string, CmsError>;
|
|
5
5
|
export declare function validateSession(sessionId: string, pool: DbPool): ResultAsync<string, CmsError>;
|
|
6
|
-
export declare function buildSessionCookie(sessionId: string, maxAgeSeconds?: number): string;
|
|
7
|
-
export declare function buildExpiredSessionCookie(): string;
|
|
6
|
+
export declare function buildSessionCookie(sessionId: string, maxAgeSeconds?: number, secure?: boolean): string;
|
|
7
|
+
export declare function buildExpiredSessionCookie(secure?: boolean): string;
|
|
8
|
+
export declare function destroyUserSessions(userId: string, pool: DbPool): ResultAsync<void, CmsError>;
|
|
8
9
|
export declare function destroySession(sessionId: string, pool: DbPool): ResultAsync<void, CmsError>;
|
|
9
10
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AASlD,wBAAgB,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAY1F;AAED,wBAAgB,eAAe,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAY/F;AAED,wBAAgB,kBAAkB,CAAE,SAAS,EAAE,MAAM,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AASlD,wBAAgB,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAY1F;AAED,wBAAgB,eAAe,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAY/F;AAED,wBAAgB,kBAAkB,CAAE,SAAS,EAAE,MAAM,EAAE,aAAa,SAAO,EAAE,MAAM,UAAO,GAAG,MAAM,CAGlG;AAED,wBAAgB,yBAAyB,CAAE,MAAM,UAAO,GAAG,MAAM,CAGhE;AAED,wBAAgB,mBAAmB,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAM9F;AAED,wBAAgB,cAAc,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAM5F"}
|
package/dist/auth/session.js
CHANGED
|
@@ -19,11 +19,16 @@ export function validateSession(sessionId, pool) {
|
|
|
19
19
|
return okAsync(row.user_id);
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
export function buildSessionCookie(sessionId, maxAgeSeconds = 7200) {
|
|
23
|
-
|
|
22
|
+
export function buildSessionCookie(sessionId, maxAgeSeconds = 7200, secure = true) {
|
|
23
|
+
const secureFlag = secure ? '; Secure' : '';
|
|
24
|
+
return `cms_session=${sessionId}; Path=/; HttpOnly; SameSite=Strict${secureFlag}; Max-Age=${maxAgeSeconds}`;
|
|
24
25
|
}
|
|
25
|
-
export function buildExpiredSessionCookie() {
|
|
26
|
-
|
|
26
|
+
export function buildExpiredSessionCookie(secure = true) {
|
|
27
|
+
const secureFlag = secure ? '; Secure' : '';
|
|
28
|
+
return `cms_session=; Path=/; HttpOnly; SameSite=Strict${secureFlag}; Max-Age=0`;
|
|
29
|
+
}
|
|
30
|
+
export function destroyUserSessions(userId, pool) {
|
|
31
|
+
return safeQuery(pool, 'UPDATE cms_sessions SET deleted_at = NOW() WHERE user_id = $1 AND deleted_at IS NULL', [userId]).map(() => undefined);
|
|
27
32
|
}
|
|
28
33
|
export function destroySession(sessionId, pool) {
|
|
29
34
|
return safeQuery(pool, 'UPDATE cms_sessions SET deleted_at = NOW() WHERE id = $1 RETURNING id', [sessionId]).map(() => undefined);
|
package/dist/auth/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAQ/C,MAAM,UAAU,aAAa,CAAE,MAAc,EAAE,IAAY;IACzD,OAAO,SAAS,CACd,IAAI,EACJ,gHAAgH,EAChH,CAAC,MAAM,CAAC,CACT,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAE,SAAiB,EAAE,IAAY;IAC9D,OAAO,SAAS,CACd,IAAI,EACJ,8GAA8G,EAC9G,CAAC,SAAS,CAAC,CACZ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAE,SAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAQ/C,MAAM,UAAU,aAAa,CAAE,MAAc,EAAE,IAAY;IACzD,OAAO,SAAS,CACd,IAAI,EACJ,gHAAgH,EAChH,CAAC,MAAM,CAAC,CACT,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAE,SAAiB,EAAE,IAAY;IAC9D,OAAO,SAAS,CACd,IAAI,EACJ,8GAA8G,EAC9G,CAAC,SAAS,CAAC,CACZ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAE,SAAiB,EAAE,aAAa,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI;IACxF,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3C,OAAO,eAAe,SAAS,sCAAsC,UAAU,aAAa,aAAa,EAAE,CAAA;AAC7G,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAE,MAAM,GAAG,IAAI;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3C,OAAO,kDAAkD,UAAU,aAAa,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,MAAc,EAAE,IAAY;IAC/D,OAAO,SAAS,CACd,IAAI,EACJ,sFAAsF,EACtF,CAAC,MAAM,CAAC,CACT,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,cAAc,CAAE,SAAiB,EAAE,IAAY;IAC7D,OAAO,SAAS,CACd,IAAI,EACJ,uEAAuE,EACvE,CAAC,SAAS,CAAC,CACZ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AACxB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export { resolveAccess } from './access/index.js';
|
|
|
7
7
|
export type { AccessControlFunction, AccessArgs, CollectionAccess, FieldAccess } from './access/index.js';
|
|
8
8
|
export { runHooks } from './hooks/index.js';
|
|
9
9
|
export type { HookFunction, HookArgs, HookData, CollectionHooks, FieldHooks } from './hooks/index.js';
|
|
10
|
-
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields, hashPassword, verifyPassword, createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie, createAuthMiddleware, generateCsrfToken, validateCsrfToken, createAuthRoutes } from './auth/index.js';
|
|
11
|
-
export type { AuthConfig, AuthContext, AuthMiddleware } from './auth/index.js';
|
|
10
|
+
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields, hashPassword, verifyPassword, createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie, createAuthMiddleware, createCmsAuthValidator, createCmsAuthGuard, generateCsrfToken, validateCsrfToken, createAuthRoutes } from './auth/index.js';
|
|
11
|
+
export type { AuthConfig, AuthContext, AuthMiddleware, CmsAuthGuardOptions } from './auth/index.js';
|
|
12
12
|
export { createRateLimiter, parseCookie } from './auth/index.js';
|
|
13
13
|
export type { RateLimiter } from './auth/index.js';
|
|
14
14
|
export { createLocalApi, createRestRoutes, sendJson, sendErrorJson, safeReadBody, safeJsonParse } from './api/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,QAAQ,EACR,WAAW,EACX,YAAY,EACb,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,YAAY,EACV,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,UAAU,EACX,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { generateZodSchema, generatePartialSchema, isValidSlug, isValidEmail } f
|
|
|
4
4
|
export { WhereOperator, createQueryBuilder, getColumnType, getColumnConstraints, generateCreateTable, generateCreateTableSql, generateAlterTableSql } from './db/index.js';
|
|
5
5
|
export { resolveAccess } from './access/index.js';
|
|
6
6
|
export { runHooks } from './hooks/index.js';
|
|
7
|
-
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields, hashPassword, verifyPassword, createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie, createAuthMiddleware, generateCsrfToken, validateCsrfToken, createAuthRoutes } from './auth/index.js';
|
|
7
|
+
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields, hashPassword, verifyPassword, createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie, createAuthMiddleware, createCmsAuthValidator, createCmsAuthGuard, generateCsrfToken, validateCsrfToken, createAuthRoutes } from './auth/index.js';
|
|
8
8
|
export { createRateLimiter, parseCookie } from './auth/index.js';
|
|
9
9
|
export { createLocalApi, createRestRoutes, sendJson, sendErrorJson, safeReadBody, safeJsonParse } from './api/index.js';
|
|
10
10
|
export { renderLayout, renderDashboard, renderListView, renderEditView, renderFieldInput, renderLoginPage, renderAnalyticsView, createAdminRoutes, escapeHtml } from './admin/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAoC1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,eAAe,CAAA;AAgBtB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAS3C,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGhE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGvH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAGxH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAoC1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,eAAe,CAAA;AAgBtB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAS3C,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGhE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGvH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAGxH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@valencets/cms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"lexical": "^0.41.0",
|
|
32
32
|
"neverthrow": "^8.2.0",
|
|
33
33
|
"zod": "^4.3.6",
|
|
34
|
-
"@valencets/core": "0.
|
|
34
|
+
"@valencets/core": "0.3.0",
|
|
35
35
|
"@valencets/db": "0.1.2",
|
|
36
36
|
"@valencets/ui": "0.2.0",
|
|
37
37
|
"@valencets/telemetry": "0.1.4"
|