dolphin-server-modules 1.3.8 → 1.4.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # 🐬 Dolphin Framework (v1.3.1)
1
+ # 🐬 Dolphin Framework (v1.1.4.0)
2
2
 
3
3
  **Dolphin** is a 2026-ready, ultra-lightweight, and 100% modular backend ecosystem built on native Node.js. It’s not just a framework; it’s a universal toolkit for Web, Microservices, and Industrial IoT.
4
4
 
@@ -0,0 +1,140 @@
1
+ export declare const createDolphinAuthController: (db: any, authConfig: any) => {
2
+ register: (ctx: any) => Promise<{
3
+ success: boolean;
4
+ data: {
5
+ id: any;
6
+ email: any;
7
+ role: any;
8
+ };
9
+ error?: undefined;
10
+ status?: undefined;
11
+ } | {
12
+ success: boolean;
13
+ error: any;
14
+ status: any;
15
+ data?: undefined;
16
+ }>;
17
+ login: (ctx: any) => Promise<{
18
+ accessToken: string;
19
+ user: {
20
+ id: any;
21
+ email: any;
22
+ role: any;
23
+ twoFactorEnabled: any;
24
+ };
25
+ success: boolean;
26
+ error?: undefined;
27
+ status?: undefined;
28
+ } | {
29
+ success: boolean;
30
+ error: any;
31
+ status: any;
32
+ }>;
33
+ refresh: (ctx: any) => Promise<{
34
+ accessToken: string;
35
+ user: {
36
+ id: any;
37
+ email: any;
38
+ role: any;
39
+ twoFactorEnabled: any;
40
+ };
41
+ success: boolean;
42
+ error?: undefined;
43
+ status?: undefined;
44
+ } | {
45
+ success: boolean;
46
+ error: any;
47
+ status: number;
48
+ }>;
49
+ logout: (ctx: any) => Promise<{
50
+ success: boolean;
51
+ error?: undefined;
52
+ } | {
53
+ success: boolean;
54
+ error: any;
55
+ }>;
56
+ me: (ctx: any) => Promise<{
57
+ success: boolean;
58
+ data: any;
59
+ error?: undefined;
60
+ status?: undefined;
61
+ } | {
62
+ success: boolean;
63
+ error: any;
64
+ status: number;
65
+ data?: undefined;
66
+ }>;
67
+ changePassword: (ctx: any) => Promise<{
68
+ success: boolean;
69
+ message: string;
70
+ error?: undefined;
71
+ status?: undefined;
72
+ } | {
73
+ success: boolean;
74
+ error: any;
75
+ status: number;
76
+ message?: undefined;
77
+ }>;
78
+ forgotPassword: (ctx: any) => Promise<{
79
+ resetLink?: string | undefined;
80
+ success: boolean;
81
+ message: string;
82
+ error?: undefined;
83
+ status?: undefined;
84
+ } | {
85
+ success: boolean;
86
+ error: any;
87
+ status: number;
88
+ }>;
89
+ resetPassword: (ctx: any) => Promise<{
90
+ success: boolean;
91
+ message: string;
92
+ error?: undefined;
93
+ status?: undefined;
94
+ } | {
95
+ success: boolean;
96
+ error: any;
97
+ status: number;
98
+ message?: undefined;
99
+ }>;
100
+ resendResetLink: (ctx: any) => Promise<{
101
+ resetLink?: string | undefined;
102
+ success: boolean;
103
+ message: string;
104
+ error?: undefined;
105
+ status?: undefined;
106
+ } | {
107
+ success: boolean;
108
+ error: any;
109
+ status: number;
110
+ }>;
111
+ enable2FA: (ctx: any) => Promise<{
112
+ secret: string;
113
+ uri: string;
114
+ success: boolean;
115
+ error?: undefined;
116
+ } | {
117
+ success: boolean;
118
+ error: any;
119
+ }>;
120
+ verify2FA: (ctx: any) => Promise<{
121
+ recoveryCodes: string[];
122
+ success: boolean;
123
+ error?: undefined;
124
+ } | {
125
+ success: boolean;
126
+ error: any;
127
+ }>;
128
+ disable2FA: (ctx: any) => Promise<{
129
+ success: boolean;
130
+ error?: undefined;
131
+ } | {
132
+ success: boolean;
133
+ error: any;
134
+ }>;
135
+ requireAuth: (req: any, res: any, next: Function) => Promise<any>;
136
+ require2FA: (req: any, res: any, next: Function) => Promise<any>;
137
+ requireAdmin: (ctx: any, next: Function) => Promise<void>;
138
+ sanitize: (user: any) => any;
139
+ };
140
+ export default createDolphinAuthController;
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.createDolphinAuthController = void 0;
40
+ // dolphin-server-modules/auth-controller.ts
41
+ const auth_1 = require("../auth/auth");
42
+ const node_crypto_1 = __importDefault(require("node:crypto"));
43
+ // No complex interface extensions - use type assertion
44
+ const createDolphinAuthController = (db, authConfig) => {
45
+ const authCore = (0, auth_1.createAuth)(authConfig);
46
+ // Helper: Verify password
47
+ const verifyPassword = async (password, hash) => {
48
+ try {
49
+ const argon2 = await Promise.resolve().then(() => __importStar(require('argon2')));
50
+ return await argon2.verify(hash, password);
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ };
56
+ // Helper: Hash password
57
+ const hashPassword = async (password) => {
58
+ const argon2 = await Promise.resolve().then(() => __importStar(require('argon2')));
59
+ return await argon2.hash(password, {
60
+ type: argon2.argon2id,
61
+ memoryCost: 19456,
62
+ timeCost: 2
63
+ });
64
+ };
65
+ // Generate reset token
66
+ const generateResetToken = () => node_crypto_1.default.randomBytes(32).toString('hex');
67
+ return {
68
+ // ============ AUTH HANDLERS ============
69
+ register: async (ctx) => {
70
+ try {
71
+ const body = await ctx.req.json();
72
+ const user = await authCore.register(db, body);
73
+ return { success: true, data: user };
74
+ }
75
+ catch (err) {
76
+ return { success: false, error: err.message, status: err.status || 400 };
77
+ }
78
+ },
79
+ login: async (ctx) => {
80
+ try {
81
+ const body = await ctx.req.json();
82
+ const result = await authCore.login(db, body, ctx.res);
83
+ return { success: true, ...result };
84
+ }
85
+ catch (err) {
86
+ return { success: false, error: err.message, status: err.status || 401 };
87
+ }
88
+ },
89
+ refresh: async (ctx) => {
90
+ try {
91
+ const refreshToken = ctx.req.cookies?.rt;
92
+ const result = await authCore.refresh(db, refreshToken, ctx.res);
93
+ return { success: true, ...result };
94
+ }
95
+ catch (err) {
96
+ return { success: false, error: err.message, status: 401 };
97
+ }
98
+ },
99
+ logout: async (ctx) => {
100
+ try {
101
+ const refreshToken = ctx.req.cookies?.rt;
102
+ await authCore.logout(db, refreshToken);
103
+ ctx.res.setHeader('Set-Cookie', 'rt=; HttpOnly; Max-Age=0');
104
+ return { success: true };
105
+ }
106
+ catch (err) {
107
+ return { success: false, error: err.message };
108
+ }
109
+ },
110
+ me: async (ctx) => {
111
+ try {
112
+ const user = ctx.req.user;
113
+ if (!user)
114
+ throw new Error('Unauthorized');
115
+ const { password, recoveryCodes, twoFactorSecret, ...safe } = user;
116
+ return { success: true, data: safe };
117
+ }
118
+ catch (err) {
119
+ return { success: false, error: err.message, status: 401 };
120
+ }
121
+ },
122
+ // ============ CHANGE PASSWORD ============
123
+ changePassword: async (ctx) => {
124
+ try {
125
+ const userId = ctx.req.user?.id;
126
+ if (!userId)
127
+ throw new Error('Unauthorized');
128
+ const { oldPassword, newPassword } = await ctx.req.json();
129
+ if (!oldPassword || !newPassword)
130
+ throw new Error('Old and new password required');
131
+ if (newPassword.length < 8)
132
+ throw new Error('Password must be at least 8 characters');
133
+ const user = await db.findUserById(userId);
134
+ if (!user)
135
+ throw new Error('User not found');
136
+ const isValid = await verifyPassword(oldPassword, user.password);
137
+ if (!isValid)
138
+ throw new Error('Current password is incorrect');
139
+ const hashedPassword = await hashPassword(newPassword);
140
+ await db.updateUser(userId, { password: hashedPassword });
141
+ return { success: true, message: 'Password changed successfully' };
142
+ }
143
+ catch (err) {
144
+ return { success: false, error: err.message, status: 400 };
145
+ }
146
+ },
147
+ // ============ FORGOT PASSWORD ============
148
+ forgotPassword: async (ctx) => {
149
+ try {
150
+ const { email } = await ctx.req.json();
151
+ if (!email)
152
+ throw new Error('Email required');
153
+ const user = await db.findUserByEmail(email);
154
+ if (!user) {
155
+ return { success: true, message: 'If email exists, reset link sent' };
156
+ }
157
+ const resetToken = generateResetToken();
158
+ const resetExpires = new Date(Date.now() + 3600000);
159
+ await db.updateUser(user.id, {
160
+ resetPasswordToken: resetToken,
161
+ resetPasswordExpires: resetExpires
162
+ });
163
+ const resetLink = `${process.env.APP_URL || 'http://localhost:3000'}/reset-password?token=${resetToken}`;
164
+ return {
165
+ success: true,
166
+ message: 'Reset link sent',
167
+ ...(process.env.NODE_ENV !== 'production' && { resetLink })
168
+ };
169
+ }
170
+ catch (err) {
171
+ return { success: false, error: err.message, status: 400 };
172
+ }
173
+ },
174
+ // ============ RESET PASSWORD ============
175
+ resetPassword: async (ctx) => {
176
+ try {
177
+ const { token, newPassword } = await ctx.req.json();
178
+ if (!token || !newPassword)
179
+ throw new Error('Token and password required');
180
+ if (newPassword.length < 8)
181
+ throw new Error('Password must be at least 8 characters');
182
+ // Find user by reset token (using db.read if available, otherwise try direct)
183
+ let user = null;
184
+ if (db.read) {
185
+ const users = await db.read('User', { resetPasswordToken: token });
186
+ user = users?.[0];
187
+ }
188
+ else if (db.findUserByResetToken) {
189
+ user = await db.findUserByResetToken(token);
190
+ }
191
+ if (!user)
192
+ throw new Error('Invalid or expired reset token');
193
+ if (user.resetPasswordExpires && new Date(user.resetPasswordExpires) < new Date()) {
194
+ throw new Error('Reset token has expired');
195
+ }
196
+ const hashedPassword = await hashPassword(newPassword);
197
+ await db.updateUser(user.id, {
198
+ password: hashedPassword,
199
+ resetPasswordToken: null,
200
+ resetPasswordExpires: null
201
+ });
202
+ return { success: true, message: 'Password reset successfully' };
203
+ }
204
+ catch (err) {
205
+ return { success: false, error: err.message, status: 400 };
206
+ }
207
+ },
208
+ // ============ RESEND RESET LINK ============
209
+ resendResetLink: async (ctx) => {
210
+ try {
211
+ const { email } = await ctx.req.json();
212
+ if (!email)
213
+ throw new Error('Email required');
214
+ const user = await db.findUserByEmail(email);
215
+ if (!user) {
216
+ return { success: true, message: 'If email exists, reset link sent' };
217
+ }
218
+ const resetToken = generateResetToken();
219
+ const resetExpires = new Date(Date.now() + 3600000);
220
+ await db.updateUser(user.id, {
221
+ resetPasswordToken: resetToken,
222
+ resetPasswordExpires: resetExpires
223
+ });
224
+ const resetLink = `${process.env.APP_URL || 'http://localhost:3000'}/reset-password?token=${resetToken}`;
225
+ return {
226
+ success: true,
227
+ message: 'Reset link sent',
228
+ ...(process.env.NODE_ENV !== 'production' && { resetLink })
229
+ };
230
+ }
231
+ catch (err) {
232
+ return { success: false, error: err.message, status: 400 };
233
+ }
234
+ },
235
+ // ============ 2FA HANDLERS ============
236
+ enable2FA: async (ctx) => {
237
+ try {
238
+ const result = await authCore.enable2FA(db, ctx.req.user.id);
239
+ return { success: true, ...result };
240
+ }
241
+ catch (err) {
242
+ return { success: false, error: err.message };
243
+ }
244
+ },
245
+ verify2FA: async (ctx) => {
246
+ try {
247
+ const { totp } = await ctx.req.json();
248
+ const result = await authCore.verify2FA(db, ctx.req.user.id, totp);
249
+ return { success: true, ...result };
250
+ }
251
+ catch (err) {
252
+ return { success: false, error: err.message };
253
+ }
254
+ },
255
+ disable2FA: async (ctx) => {
256
+ try {
257
+ const { totp } = await ctx.req.json();
258
+ await authCore.disable2FA(db, ctx.req.user.id, totp);
259
+ return { success: true };
260
+ }
261
+ catch (err) {
262
+ return { success: false, error: err.message };
263
+ }
264
+ },
265
+ // ============ MIDDLEWARE ============
266
+ requireAuth: authCore.middleware(),
267
+ require2FA: authCore.middleware({ require2FA: true }),
268
+ requireAdmin: async (ctx, next) => {
269
+ await authCore.middleware()(ctx.req, ctx.res, async () => {
270
+ if (ctx.req.user?.role !== 'admin') {
271
+ return ctx.status(403).json({ error: 'Admin access required' });
272
+ }
273
+ await next();
274
+ });
275
+ },
276
+ // ============ UTILITIES ============
277
+ sanitize: (user) => {
278
+ if (!user)
279
+ return null;
280
+ const { password, recoveryCodes, twoFactorSecret, pending2FASecret, resetPasswordToken, resetPasswordExpires, ...safe } = user;
281
+ return safe;
282
+ }
283
+ };
284
+ };
285
+ exports.createDolphinAuthController = createDolphinAuthController;
286
+ exports.default = exports.createDolphinAuthController;
287
+ //# sourceMappingURL=authController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authController.js","sourceRoot":"","sources":["../../authController/authController.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dolphin-server-modules",
3
- "version": "1.3.8",
3
+ "version": "1.4.0",
4
4
  "homepage": "https://github.com/Phuyalshankar/dolphin-server-modules#readme",
5
5
  "description": "Core utility modules for Auth, CRUD, and Controllers",
6
6
  "main": "dist/index.js",
@@ -15,6 +15,7 @@
15
15
  "exports": {
16
16
  ".": "./dist/index.js",
17
17
  "./auth": "./dist/auth/auth.js",
18
+ "./auth-controller": "./dist/authController/authController.js",
18
19
  "./controller": "./dist/controller/controller.js",
19
20
  "./crud": "./dist/curd/crud.js",
20
21
  "./curd": "./dist/curd/crud.js",
@@ -41,9 +42,11 @@
41
42
  "crud",
42
43
  "controller",
43
44
  "realtime",
44
- "iot"
45
+ "iot",
46
+ "2fa",
47
+ "jwt"
45
48
  ],
46
- "author": "",
49
+ "author": "Shankar Phuyal",
47
50
  "license": "ISC",
48
51
  "dependencies": {
49
52
  "argon2": "^0.40.1",
@@ -58,4 +61,4 @@
58
61
  "ts-jest": "^29.1.2",
59
62
  "typescript": "^5.4.3"
60
63
  }
61
- }
64
+ }