@arch-cadre/core 0.0.40 → 0.0.42
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/core/auth/email-verification.d.mts +2 -2
- package/dist/core/auth/logic.d.mts +6 -6
- package/dist/core/auth/rbac.d.mts +2 -2
- package/dist/core/notifications/actions.d.mts +1 -1
- package/package.json +4 -5
- package/dist/core/auth/augment.d.ts +0 -18
- package/dist/core/auth/augment.d.ts.map +0 -1
- package/dist/core/auth/augment.js +0 -53
- package/dist/core/auth/email-verification.d.ts +0 -58
- package/dist/core/auth/email-verification.d.ts.map +0 -1
- package/dist/core/auth/email-verification.js +0 -115
- package/dist/core/auth/events.d.ts +0 -53
- package/dist/core/auth/events.d.ts.map +0 -1
- package/dist/core/auth/events.js +0 -2
- package/dist/core/auth/logic.d.ts +0 -106
- package/dist/core/auth/logic.d.ts.map +0 -1
- package/dist/core/auth/logic.js +0 -264
- package/dist/core/auth/password-reset.d.ts +0 -35
- package/dist/core/auth/password-reset.d.ts.map +0 -1
- package/dist/core/auth/password-reset.js +0 -132
- package/dist/core/auth/rbac.d.ts +0 -56
- package/dist/core/auth/rbac.d.ts.map +0 -1
- package/dist/core/auth/rbac.js +0 -151
- package/dist/core/auth/session.d.ts +0 -50
- package/dist/core/auth/session.d.ts.map +0 -1
- package/dist/core/auth/session.js +0 -167
- package/dist/core/auth/types.d.ts +0 -52
- package/dist/core/auth/types.d.ts.map +0 -1
- package/dist/core/auth/types.js +0 -2
- package/dist/core/auth/utils/encode.d.ts +0 -12
- package/dist/core/auth/utils/encode.d.ts.map +0 -1
- package/dist/core/auth/utils/encode.js +0 -24
- package/dist/core/auth/utils/encryption.d.ts +0 -25
- package/dist/core/auth/utils/encryption.d.ts.map +0 -1
- package/dist/core/auth/utils/encryption.js +0 -68
- package/dist/core/auth/validation.d.ts +0 -44
- package/dist/core/auth/validation.d.ts.map +0 -1
- package/dist/core/auth/validation.js +0 -44
- package/dist/core/bootstrap.d.ts +0 -2
- package/dist/core/bootstrap.d.ts.map +0 -1
- package/dist/core/bootstrap.js +0 -54
- package/dist/core/config.d.ts +0 -9
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -6
- package/dist/core/config.server.d.ts +0 -12
- package/dist/core/config.server.d.ts.map +0 -1
- package/dist/core/config.server.js +0 -101
- package/dist/core/event-bus.d.ts +0 -14
- package/dist/core/event-bus.d.ts.map +0 -1
- package/dist/core/event-bus.js +0 -54
- package/dist/core/filesystem/index.d.ts +0 -4
- package/dist/core/filesystem/index.d.ts.map +0 -1
- package/dist/core/filesystem/index.js +0 -27
- package/dist/core/filesystem/providers/local.d.ts +0 -8
- package/dist/core/filesystem/providers/local.d.ts.map +0 -1
- package/dist/core/filesystem/providers/local.js +0 -49
- package/dist/core/filesystem/service.d.ts +0 -16
- package/dist/core/filesystem/service.d.ts.map +0 -1
- package/dist/core/filesystem/service.js +0 -54
- package/dist/core/filesystem/types.d.ts +0 -19
- package/dist/core/filesystem/types.d.ts.map +0 -1
- package/dist/core/filesystem/types.js +0 -2
- package/dist/core/notifications/actions.d.ts +0 -54
- package/dist/core/notifications/actions.d.ts.map +0 -1
- package/dist/core/notifications/actions.js +0 -49
- package/dist/core/notifications/index.d.ts +0 -4
- package/dist/core/notifications/index.d.ts.map +0 -1
- package/dist/core/notifications/index.js +0 -19
- package/dist/core/notifications/service.d.ts +0 -7
- package/dist/core/notifications/service.d.ts.map +0 -1
- package/dist/core/notifications/service.js +0 -35
- package/dist/core/notifications/types.d.ts +0 -17
- package/dist/core/notifications/types.d.ts.map +0 -1
- package/dist/core/notifications/types.js +0 -2
- package/dist/core/setup.d.ts +0 -6
- package/dist/core/setup.d.ts.map +0 -1
- package/dist/core/setup.js +0 -28
- package/dist/core/types.d.ts +0 -10
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -2
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -32
- package/dist/server/auth/email.d.ts +0 -10
- package/dist/server/auth/email.d.ts.map +0 -1
- package/dist/server/auth/email.js +0 -24
- package/dist/server/auth/password.d.ts +0 -20
- package/dist/server/auth/password.d.ts.map +0 -1
- package/dist/server/auth/password.js +0 -38
- package/dist/server/auth/types.d.ts +0 -13
- package/dist/server/auth/types.d.ts.map +0 -1
- package/dist/server/auth/types.js +0 -17
- package/dist/server/auth/user.d.ts +0 -54
- package/dist/server/auth/user.d.ts.map +0 -1
- package/dist/server/auth/user.js +0 -237
- package/dist/server/database/inject.d.ts +0 -11
- package/dist/server/database/inject.d.ts.map +0 -1
- package/dist/server/database/inject.js +0 -33
- package/dist/server/database/schema.d.ts +0 -2953
- package/dist/server/database/schema.d.ts.map +0 -1
- package/dist/server/database/schema.js +0 -195
- package/dist/server/database/types.d.ts +0 -12
- package/dist/server/database/types.d.ts.map +0 -1
- package/dist/server/database/types.js +0 -2
- package/dist/server/emails/index.d.ts +0 -23
- package/dist/server/emails/index.d.ts.map +0 -1
- package/dist/server/emails/index.js +0 -73
- package/dist/server.d.ts +0 -25
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -48
|
@@ -21,13 +21,13 @@ declare function getUserEmailVerificationRequest(userId: string, id: string): Pr
|
|
|
21
21
|
* Creates a new email verification request, deleting any existing one for the user.
|
|
22
22
|
*/
|
|
23
23
|
declare function createEmailVerificationRequest(userId: string, email: string): Promise<{
|
|
24
|
-
id: string;
|
|
25
24
|
email: string;
|
|
25
|
+
code: string;
|
|
26
|
+
id: string;
|
|
26
27
|
createdAt: Date;
|
|
27
28
|
updatedAt: Date | null;
|
|
28
29
|
userId: string;
|
|
29
30
|
expiresAt: Date;
|
|
30
|
-
code: string;
|
|
31
31
|
}>;
|
|
32
32
|
/**
|
|
33
33
|
* Deletes all email verification requests for a user.
|
|
@@ -55,18 +55,18 @@ declare function signUp(data: RegisterInput): Promise<{
|
|
|
55
55
|
session: {
|
|
56
56
|
[x: string]: any;
|
|
57
57
|
id: string;
|
|
58
|
-
active_organization_id: string | null;
|
|
59
58
|
createdAt: Date;
|
|
60
59
|
updatedAt: Date | null;
|
|
61
60
|
userId: string;
|
|
61
|
+
active_organization_id: string | null;
|
|
62
62
|
expiresAt: Date;
|
|
63
63
|
};
|
|
64
64
|
user: {
|
|
65
65
|
[x: string]: any;
|
|
66
|
-
id: string;
|
|
67
66
|
email: string;
|
|
68
|
-
name: string;
|
|
69
67
|
password: string | null;
|
|
68
|
+
name: string;
|
|
69
|
+
id: string;
|
|
70
70
|
image: string | null;
|
|
71
71
|
recovery_code: Buffer<ArrayBufferLike>;
|
|
72
72
|
emailVerifiedAt: Date | null;
|
|
@@ -83,17 +83,17 @@ declare function finalizeLogin(userId: string, flags: SessionFlags): Promise<{
|
|
|
83
83
|
session: {
|
|
84
84
|
[x: string]: any;
|
|
85
85
|
id: string;
|
|
86
|
-
active_organization_id: string | null;
|
|
87
86
|
createdAt: Date;
|
|
88
87
|
updatedAt: Date | null;
|
|
89
88
|
userId: string;
|
|
89
|
+
active_organization_id: string | null;
|
|
90
90
|
expiresAt: Date;
|
|
91
91
|
} | null;
|
|
92
92
|
user: {
|
|
93
|
-
id: string;
|
|
94
93
|
email: string;
|
|
95
|
-
name: string;
|
|
96
94
|
password: string | null;
|
|
95
|
+
name: string;
|
|
96
|
+
id: string;
|
|
97
97
|
image: string | null;
|
|
98
98
|
recovery_code: Buffer<ArrayBufferLike>;
|
|
99
99
|
emailVerifiedAt: Date | null;
|
|
@@ -16,8 +16,8 @@ declare function getRoleById(roleId: string): Promise<{
|
|
|
16
16
|
description: string | null;
|
|
17
17
|
}>;
|
|
18
18
|
declare function createRole(name: string, description?: string): Promise<{
|
|
19
|
-
id: string;
|
|
20
19
|
name: string;
|
|
20
|
+
id: string;
|
|
21
21
|
description: string | null;
|
|
22
22
|
}[]>;
|
|
23
23
|
declare function deleteRole(roleId: string): Promise<pg.QueryResult<never>>;
|
|
@@ -27,8 +27,8 @@ declare function getPermissions(): Promise<{
|
|
|
27
27
|
description: string | null;
|
|
28
28
|
}[]>;
|
|
29
29
|
declare function createPermission(name: string, description?: string): Promise<{
|
|
30
|
-
id: string;
|
|
31
30
|
name: string;
|
|
31
|
+
id: string;
|
|
32
32
|
description: string | null;
|
|
33
33
|
}[]>;
|
|
34
34
|
declare function deletePermission(permissionId: string): Promise<pg.QueryResult<never>>;
|
|
@@ -15,11 +15,11 @@ declare function getUserNotifications(): Promise<{
|
|
|
15
15
|
updatedAt: Date | null;
|
|
16
16
|
}[] | null>;
|
|
17
17
|
declare function createNotification(data: CreateNotificationPayload): Promise<{
|
|
18
|
+
type: string | null;
|
|
18
19
|
id: string;
|
|
19
20
|
createdAt: Date;
|
|
20
21
|
updatedAt: Date | null;
|
|
21
22
|
userId: string;
|
|
22
|
-
type: string | null;
|
|
23
23
|
title: string;
|
|
24
24
|
content: string | null;
|
|
25
25
|
target: string | null;
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arch-cadre/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.42",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Core logic for Kryo framework",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
-
"module": "./dist/index.js",
|
|
8
7
|
"exports": {
|
|
9
|
-
".": "./dist/index.
|
|
10
|
-
"./server": "./dist/server.
|
|
8
|
+
".": "./dist/index.mjs",
|
|
9
|
+
"./server": "./dist/server.mjs",
|
|
11
10
|
"./package.json": "./package.json"
|
|
12
11
|
},
|
|
13
12
|
"files": [
|
|
@@ -21,7 +20,7 @@
|
|
|
21
20
|
"dev:unbuild": "unbuild --stub",
|
|
22
21
|
"build:unbuild": "unbuild",
|
|
23
22
|
"dev": "tsdown --watch",
|
|
24
|
-
"build": "
|
|
23
|
+
"build": "tsdown"
|
|
25
24
|
},
|
|
26
25
|
"dependencies": {
|
|
27
26
|
"@oslojs/binary": "^1.0.0",
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { FullUser, PasswordResetSession, Session, User } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* REGISTRIES FOR MODULAR EXTENSIONS
|
|
4
|
-
*/
|
|
5
|
-
type IdentityAugmenter = (user: User) => Promise<Partial<FullUser>>;
|
|
6
|
-
type SessionAugmenter = (session: Session) => Promise<Partial<Session>>;
|
|
7
|
-
type PasswordResetSessionAugmenter = (session: PasswordResetSession) => Promise<Partial<PasswordResetSession>>;
|
|
8
|
-
export declare function registerIdentityAugmenter(augmenter: IdentityAugmenter): void;
|
|
9
|
-
export declare function registerSessionAugmenter(augmenter: SessionAugmenter): void;
|
|
10
|
-
export declare function registerPasswordResetSessionAugmenter(augmenter: PasswordResetSessionAugmenter): void;
|
|
11
|
-
/**
|
|
12
|
-
* EXECUTION FUNCTIONS
|
|
13
|
-
*/
|
|
14
|
-
export declare function augmentUser(user: User, coreRbacData?: Record<string, any>): Promise<FullUser>;
|
|
15
|
-
export declare function augmentSession(session: Session): Promise<Session>;
|
|
16
|
-
export declare function augmentPasswordResetSession(session: PasswordResetSession): Promise<PasswordResetSession>;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=augment.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"augment.d.ts","sourceRoot":"","sources":["../../../src/core/auth/augment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE7E;;GAEG;AAEH,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,KAAK,6BAA6B,GAAG,CACnC,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAuB5C,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,iBAAiB,QAErE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,QAEnE;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,6BAA6B,QAGzC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjC,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAO/B"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a, _b, _c;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.registerIdentityAugmenter = registerIdentityAugmenter;
|
|
5
|
-
exports.registerSessionAugmenter = registerSessionAugmenter;
|
|
6
|
-
exports.registerPasswordResetSessionAugmenter = registerPasswordResetSessionAugmenter;
|
|
7
|
-
exports.augmentUser = augmentUser;
|
|
8
|
-
exports.augmentSession = augmentSession;
|
|
9
|
-
exports.augmentPasswordResetSession = augmentPasswordResetSession;
|
|
10
|
-
const globalForAugment = globalThis;
|
|
11
|
-
const identityAugmenters = (_a = globalForAugment.__KRYO_IDENTITY_AUGMENTERS__) !== null && _a !== void 0 ? _a : new Set();
|
|
12
|
-
const sessionAugmenters = (_b = globalForAugment.__KRYO_SESSION_AUGMENTERS__) !== null && _b !== void 0 ? _b : new Set();
|
|
13
|
-
const passwordResetSessionAugmenters = (_c = globalForAugment.__KRYO_PASSWORD_RESET_SESSION_AUGMENTERS__) !== null && _c !== void 0 ? _c : new Set();
|
|
14
|
-
globalForAugment.__KRYO_IDENTITY_AUGMENTERS__ = identityAugmenters;
|
|
15
|
-
globalForAugment.__KRYO_SESSION_AUGMENTERS__ = sessionAugmenters;
|
|
16
|
-
globalForAugment.__KRYO_PASSWORD_RESET_SESSION_AUGMENTERS__ =
|
|
17
|
-
passwordResetSessionAugmenters;
|
|
18
|
-
function registerIdentityAugmenter(augmenter) {
|
|
19
|
-
identityAugmenters.add(augmenter);
|
|
20
|
-
}
|
|
21
|
-
function registerSessionAugmenter(augmenter) {
|
|
22
|
-
sessionAugmenters.add(augmenter);
|
|
23
|
-
}
|
|
24
|
-
function registerPasswordResetSessionAugmenter(augmenter) {
|
|
25
|
-
passwordResetSessionAugmenters.add(augmenter);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* EXECUTION FUNCTIONS
|
|
29
|
-
*/
|
|
30
|
-
async function augmentUser(user, coreRbacData) {
|
|
31
|
-
let augmentedData = coreRbacData || {};
|
|
32
|
-
for (const augmenter of identityAugmenters) {
|
|
33
|
-
const data = await augmenter(user);
|
|
34
|
-
augmentedData = { ...augmentedData, ...data };
|
|
35
|
-
}
|
|
36
|
-
return { ...user, ...augmentedData };
|
|
37
|
-
}
|
|
38
|
-
async function augmentSession(session) {
|
|
39
|
-
let augmentedData = {};
|
|
40
|
-
for (const augmenter of sessionAugmenters) {
|
|
41
|
-
const data = await augmenter(session);
|
|
42
|
-
augmentedData = { ...augmentedData, ...data };
|
|
43
|
-
}
|
|
44
|
-
return { ...session, ...augmentedData };
|
|
45
|
-
}
|
|
46
|
-
async function augmentPasswordResetSession(session) {
|
|
47
|
-
let augmentedData = {};
|
|
48
|
-
for (const augmenter of passwordResetSessionAugmenters) {
|
|
49
|
-
const data = await augmenter(session);
|
|
50
|
-
augmentedData = { ...augmentedData, ...data };
|
|
51
|
-
}
|
|
52
|
-
return { ...session, ...augmentedData };
|
|
53
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { emailVerificationTable } from "../../server/database/schema";
|
|
2
|
-
/**
|
|
3
|
-
* Register Email Verification as a Core Security Requirement.
|
|
4
|
-
*/
|
|
5
|
-
export declare function initEmailVerification(): Promise<void>;
|
|
6
|
-
/**
|
|
7
|
-
* Retrieves a specific email verification request for a user.
|
|
8
|
-
*/
|
|
9
|
-
export declare function getUserEmailVerificationRequest(userId: string, id: string): Promise<{
|
|
10
|
-
id: string;
|
|
11
|
-
email: string;
|
|
12
|
-
code: string;
|
|
13
|
-
userId: string;
|
|
14
|
-
expiresAt: Date;
|
|
15
|
-
createdAt: Date;
|
|
16
|
-
updatedAt: Date | null;
|
|
17
|
-
}>;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a new email verification request, deleting any existing one for the user.
|
|
20
|
-
*/
|
|
21
|
-
export declare function createEmailVerificationRequest(userId: string, email: string): Promise<{
|
|
22
|
-
id: string;
|
|
23
|
-
email: string;
|
|
24
|
-
createdAt: Date;
|
|
25
|
-
updatedAt: Date | null;
|
|
26
|
-
userId: string;
|
|
27
|
-
expiresAt: Date;
|
|
28
|
-
code: string;
|
|
29
|
-
}>;
|
|
30
|
-
/**
|
|
31
|
-
* Deletes all email verification requests for a user.
|
|
32
|
-
*/
|
|
33
|
-
export declare function deleteUserEmailVerificationRequest(userId: string): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Sends a verification email with the OTP code.
|
|
36
|
-
*/
|
|
37
|
-
export declare function sendVerificationEmail(email: string, code: string): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Sets the email verification request ID in a cookie.
|
|
40
|
-
*/
|
|
41
|
-
export declare function setEmailVerificationRequestCookie(request: typeof emailVerificationTable.$inferSelect): Promise<void>;
|
|
42
|
-
/**
|
|
43
|
-
* Removes the email verification request cookie.
|
|
44
|
-
*/
|
|
45
|
-
export declare function deleteEmailVerificationRequestCookie(): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Retrieves the current email verification request based on session and cookie.
|
|
48
|
-
*/
|
|
49
|
-
export declare function getUserEmailVerificationRequestFromRequest(): Promise<{
|
|
50
|
-
id: string;
|
|
51
|
-
email: string;
|
|
52
|
-
code: string;
|
|
53
|
-
userId: string;
|
|
54
|
-
expiresAt: Date;
|
|
55
|
-
createdAt: Date;
|
|
56
|
-
updatedAt: Date | null;
|
|
57
|
-
} | null>;
|
|
58
|
-
//# sourceMappingURL=email-verification.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email-verification.d.ts","sourceRoot":"","sources":["../../../src/core/auth/email-verification.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAMtE;;GAEG;AACH,wBAAsB,qBAAqB,kBAU1C;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM;;;;;;;;GAaX;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM;;;;;;;;GAiBd;AAED;;GAEG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;GAEG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,OAAO,sBAAsB,CAAC,YAAY,GAClD,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAsB,oCAAoC,IAAI,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAsB,0CAA0C;;;;;;;;UAqB/D"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use server";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.initEmailVerification = initEmailVerification;
|
|
5
|
-
exports.getUserEmailVerificationRequest = getUserEmailVerificationRequest;
|
|
6
|
-
exports.createEmailVerificationRequest = createEmailVerificationRequest;
|
|
7
|
-
exports.deleteUserEmailVerificationRequest = deleteUserEmailVerificationRequest;
|
|
8
|
-
exports.sendVerificationEmail = sendVerificationEmail;
|
|
9
|
-
exports.setEmailVerificationRequestCookie = setEmailVerificationRequestCookie;
|
|
10
|
-
exports.deleteEmailVerificationRequestCookie = deleteEmailVerificationRequestCookie;
|
|
11
|
-
exports.getUserEmailVerificationRequestFromRequest = getUserEmailVerificationRequestFromRequest;
|
|
12
|
-
const date_fns_1 = require("date-fns");
|
|
13
|
-
const drizzle_orm_1 = require("drizzle-orm");
|
|
14
|
-
const headers_1 = require("next/headers");
|
|
15
|
-
const inject_1 = require("../../server/database/inject");
|
|
16
|
-
const schema_1 = require("../../server/database/schema");
|
|
17
|
-
const index_1 = require("../../server/emails/index");
|
|
18
|
-
const logic_1 = require("./logic");
|
|
19
|
-
const session_1 = require("./session");
|
|
20
|
-
const encode_1 = require("./utils/encode");
|
|
21
|
-
/**
|
|
22
|
-
* Register Email Verification as a Core Security Requirement.
|
|
23
|
-
*/
|
|
24
|
-
async function initEmailVerification() {
|
|
25
|
-
(0, logic_1.registerSecurityRequirement)(async (_session, user) => {
|
|
26
|
-
if (!user.emailVerifiedAt) {
|
|
27
|
-
return {
|
|
28
|
-
satisfied: false,
|
|
29
|
-
redirect: "/verify-email?unverified",
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
return { satisfied: true };
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Retrieves a specific email verification request for a user.
|
|
37
|
-
*/
|
|
38
|
-
async function getUserEmailVerificationRequest(userId, id) {
|
|
39
|
-
const [session] = await inject_1.db
|
|
40
|
-
.select()
|
|
41
|
-
.from(schema_1.emailVerificationTable)
|
|
42
|
-
.where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema_1.emailVerificationTable.id, id), (0, drizzle_orm_1.eq)(schema_1.emailVerificationTable.userId, userId)));
|
|
43
|
-
return session;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Creates a new email verification request, deleting any existing one for the user.
|
|
47
|
-
*/
|
|
48
|
-
async function createEmailVerificationRequest(userId, email) {
|
|
49
|
-
await deleteUserEmailVerificationRequest(userId);
|
|
50
|
-
const code = (0, encode_1.generateRandomOTP)();
|
|
51
|
-
const [verificationRequest] = await inject_1.db
|
|
52
|
-
.insert(schema_1.emailVerificationTable)
|
|
53
|
-
.values({
|
|
54
|
-
userId,
|
|
55
|
-
code,
|
|
56
|
-
email,
|
|
57
|
-
expiresAt: new Date((0, date_fns_1.addHours)(new Date(), 1)),
|
|
58
|
-
})
|
|
59
|
-
.returning();
|
|
60
|
-
return verificationRequest;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Deletes all email verification requests for a user.
|
|
64
|
-
*/
|
|
65
|
-
async function deleteUserEmailVerificationRequest(userId) {
|
|
66
|
-
await inject_1.db
|
|
67
|
-
.delete(schema_1.emailVerificationTable)
|
|
68
|
-
.where((0, drizzle_orm_1.eq)(schema_1.emailVerificationTable.userId, userId));
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Sends a verification email with the OTP code.
|
|
72
|
-
*/
|
|
73
|
-
async function sendVerificationEmail(email, code) {
|
|
74
|
-
await (0, index_1.sendVerifyEmail)(email, code);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Sets the email verification request ID in a cookie.
|
|
78
|
-
*/
|
|
79
|
-
async function setEmailVerificationRequestCookie(request) {
|
|
80
|
-
const cookieStore = await (0, headers_1.cookies)();
|
|
81
|
-
cookieStore.set("email_verification", request.id, {
|
|
82
|
-
httpOnly: true,
|
|
83
|
-
path: "/",
|
|
84
|
-
secure: process.env.NODE_ENV === "production",
|
|
85
|
-
sameSite: "lax",
|
|
86
|
-
expires: request.expiresAt,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Removes the email verification request cookie.
|
|
91
|
-
*/
|
|
92
|
-
async function deleteEmailVerificationRequestCookie() {
|
|
93
|
-
const cookieStore = await (0, headers_1.cookies)();
|
|
94
|
-
cookieStore.delete("email_verification");
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Retrieves the current email verification request based on session and cookie.
|
|
98
|
-
*/
|
|
99
|
-
async function getUserEmailVerificationRequestFromRequest() {
|
|
100
|
-
var _a, _b;
|
|
101
|
-
const { user } = await (0, session_1.getCurrentSession)();
|
|
102
|
-
if (!user) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
const cookieStore = await (0, headers_1.cookies)();
|
|
106
|
-
const id = (_b = (_a = cookieStore.get("email_verification")) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
107
|
-
if (!id) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
const request = await getUserEmailVerificationRequest(user.id, id);
|
|
111
|
-
if (!request) {
|
|
112
|
-
await deleteEmailVerificationRequestCookie();
|
|
113
|
-
}
|
|
114
|
-
return request;
|
|
115
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { Session, User } from "./types";
|
|
2
|
-
export type AuthEventPayloads = {
|
|
3
|
-
/**
|
|
4
|
-
* Emitted after password/base credentials are verified,
|
|
5
|
-
* but BEFORE the final session is created.
|
|
6
|
-
* Listeners can return a "veto" to require additional factors.
|
|
7
|
-
*/
|
|
8
|
-
"auth:validate-factors": {
|
|
9
|
-
userId: string;
|
|
10
|
-
email: string;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Emitted after a full session is successfully created.
|
|
14
|
-
*/
|
|
15
|
-
"auth:session-created": {
|
|
16
|
-
session: Session;
|
|
17
|
-
user: User;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Emitted after a user signs out.
|
|
21
|
-
*/
|
|
22
|
-
"auth:signed-out": {
|
|
23
|
-
userId: string;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Emitted when a password reset is requested.
|
|
27
|
-
*/
|
|
28
|
-
"auth:password-reset:requested": {
|
|
29
|
-
userId: string;
|
|
30
|
-
email: string;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Emitted when a password has been successfully reset.
|
|
34
|
-
*/
|
|
35
|
-
"auth:password-reset:completed": {
|
|
36
|
-
userId: string;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Emitted when a verification email is sent.
|
|
40
|
-
*/
|
|
41
|
-
"auth:verification-requested": {
|
|
42
|
-
userId: string;
|
|
43
|
-
email: string;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Emitted when a user successfully verifies their email.
|
|
47
|
-
*/
|
|
48
|
-
"auth:email-verified": {
|
|
49
|
-
userId: string;
|
|
50
|
-
email: string;
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/core/auth/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,uBAAuB,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,sBAAsB,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;IAEF;;OAEG;IACH,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,+BAA+B,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,+BAA+B,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,6BAA6B,EAAE;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,qBAAqB,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC"}
|
package/dist/core/auth/events.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { augmentSession, augmentUser, registerIdentityAugmenter, registerPasswordResetSessionAugmenter, registerSessionAugmenter } from "./augment";
|
|
2
|
-
import type { AuthResponse, FullUser, Session, SessionFlags, User, UserPermission, UserRole } from "./types";
|
|
3
|
-
import { type LoginInput, type RegisterInput } from "./validation";
|
|
4
|
-
/**
|
|
5
|
-
* Registry for login validators (e.g. 2FA module)
|
|
6
|
-
*/
|
|
7
|
-
type AuthValidator = (userId: string) => Promise<AuthResponse | null>;
|
|
8
|
-
/**
|
|
9
|
-
* Registry for Security Requirements (e.g. checking if 2FA is needed for a session)
|
|
10
|
-
*/
|
|
11
|
-
type SecurityRequirement = (session: Session, user: FullUser) => Promise<{
|
|
12
|
-
satisfied: boolean;
|
|
13
|
-
redirect?: string;
|
|
14
|
-
} | null>;
|
|
15
|
-
/**
|
|
16
|
-
* Registry for password reset validators (e.g. 2FA module requiring check during reset)
|
|
17
|
-
*/
|
|
18
|
-
type PasswordResetValidator = (userId: string) => Promise<AuthResponse | null>;
|
|
19
|
-
/**
|
|
20
|
-
* Registry for email verification validators
|
|
21
|
-
*/
|
|
22
|
-
type EmailVerificationValidator = (userId: string) => Promise<AuthResponse | null>;
|
|
23
|
-
export declare function registerAuthValidator(validator: AuthValidator): Promise<void>;
|
|
24
|
-
export declare function registerPasswordResetValidator(validator: PasswordResetValidator): Promise<void>;
|
|
25
|
-
export declare function registerEmailVerificationValidator(validator: EmailVerificationValidator): Promise<void>;
|
|
26
|
-
export { registerIdentityAugmenter, registerSessionAugmenter, registerPasswordResetSessionAugmenter, augmentUser, augmentSession, };
|
|
27
|
-
export declare function registerSecurityRequirement(requirement: SecurityRequirement): Promise<void>;
|
|
28
|
-
export declare function runPasswordResetValidators(userId: string): Promise<AuthResponse | null>;
|
|
29
|
-
export declare function runEmailVerificationValidators(userId: string): Promise<AuthResponse | null>;
|
|
30
|
-
/**
|
|
31
|
-
* Augments a base user with data from all registered modules.
|
|
32
|
-
* This is now just a wrapper that includes core RBAC data.
|
|
33
|
-
*/
|
|
34
|
-
export declare function performFullUserAugmentation(user: User): Promise<FullUser>;
|
|
35
|
-
/**
|
|
36
|
-
* Checks if the current session satisfies all registered security requirements.
|
|
37
|
-
*/
|
|
38
|
-
export declare function checkSecurity(session: Session, user: FullUser, requiredRoles?: UserRole[], requiredPermissions?: UserPermission[], fallbackRedirect?: string): Promise<{
|
|
39
|
-
satisfied: boolean;
|
|
40
|
-
redirect: string | undefined;
|
|
41
|
-
} | {
|
|
42
|
-
satisfied: boolean;
|
|
43
|
-
redirect?: undefined;
|
|
44
|
-
}>;
|
|
45
|
-
/**
|
|
46
|
-
* Sign In Logic
|
|
47
|
-
*/
|
|
48
|
-
export declare function signIn(data: LoginInput): Promise<AuthResponse>;
|
|
49
|
-
/**
|
|
50
|
-
* Sign Up Logic
|
|
51
|
-
*/
|
|
52
|
-
export declare function signUp(data: RegisterInput): Promise<{
|
|
53
|
-
session: {
|
|
54
|
-
[x: string]: any;
|
|
55
|
-
id: string;
|
|
56
|
-
createdAt: Date;
|
|
57
|
-
updatedAt: Date | null;
|
|
58
|
-
userId: string;
|
|
59
|
-
active_organization_id: string | null;
|
|
60
|
-
expiresAt: Date;
|
|
61
|
-
};
|
|
62
|
-
user: {
|
|
63
|
-
[x: string]: any;
|
|
64
|
-
id: string;
|
|
65
|
-
email: string;
|
|
66
|
-
name: string;
|
|
67
|
-
password: string | null;
|
|
68
|
-
image: string | null;
|
|
69
|
-
recovery_code: Buffer<ArrayBufferLike>;
|
|
70
|
-
emailVerifiedAt: Date | null;
|
|
71
|
-
createdAt: Date;
|
|
72
|
-
updatedAt: Date | null;
|
|
73
|
-
roles: UserRole[];
|
|
74
|
-
permissions: UserPermission[];
|
|
75
|
-
};
|
|
76
|
-
}>;
|
|
77
|
-
/**
|
|
78
|
-
* Finalizes login after a challenge
|
|
79
|
-
*/
|
|
80
|
-
export declare function finalizeLogin(userId: string, flags: SessionFlags): Promise<{
|
|
81
|
-
session: {
|
|
82
|
-
[x: string]: any;
|
|
83
|
-
id: string;
|
|
84
|
-
createdAt: Date;
|
|
85
|
-
updatedAt: Date | null;
|
|
86
|
-
userId: string;
|
|
87
|
-
active_organization_id: string | null;
|
|
88
|
-
expiresAt: Date;
|
|
89
|
-
} | null;
|
|
90
|
-
user: {
|
|
91
|
-
id: string;
|
|
92
|
-
email: string;
|
|
93
|
-
name: string;
|
|
94
|
-
password: string | null;
|
|
95
|
-
image: string | null;
|
|
96
|
-
recovery_code: Buffer<ArrayBufferLike>;
|
|
97
|
-
emailVerifiedAt: Date | null;
|
|
98
|
-
createdAt: Date;
|
|
99
|
-
updatedAt: Date | null;
|
|
100
|
-
} | null;
|
|
101
|
-
}>;
|
|
102
|
-
/**
|
|
103
|
-
* Sign Out
|
|
104
|
-
*/
|
|
105
|
-
export declare function signOut(): Promise<void>;
|
|
106
|
-
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../src/core/auth/logic.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,cAAc,EACd,WAAW,EACX,yBAAyB,EACzB,qCAAqC,EACrC,wBAAwB,EACzB,MAAM,WAAW,CAAC;AAcnB,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AA6DtB;;GAEG;AACH,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAEtE;;GAEG;AACH,KAAK,mBAAmB,GAAG,CACzB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,KACX,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAE/D;;GAEG;AACH,KAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAE/E;;GAEG;AACH,KAAK,0BAA0B,GAAG,CAChC,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AA6BlC,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,aAAa,iBAEnE;AAED,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,sBAAsB,iBAGlC;AAED,wBAAsB,kCAAkC,CACtD,SAAS,EAAE,0BAA0B,iBAGtC;AAED,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,qCAAqC,EACrC,WAAW,EACX,cAAc,GACf,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,mBAAmB,iBAGjC;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAM9B;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAM9B;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,EACd,aAAa,CAAC,EAAE,QAAQ,EAAE,EAC1B,mBAAmB,CAAC,EAAE,cAAc,EAAE,EACtC,gBAAgB,CAAC,EAAE,MAAM;;;;;;GA0D1B;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAgCpE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;GAmC/C;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;GAetE;AAED;;GAEG;AACH,wBAAsB,OAAO,kBAS5B"}
|