dolphin-server-modules 2.11.0 → 2.11.2

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.
Files changed (100) hide show
  1. package/TUTORIAL_NEPALI.md +181 -0
  2. package/dist/adapters/mongoose/index.d.ts +4 -4
  3. package/dist/adapters/mongoose/index.js.map +1 -1
  4. package/dist/adapters/mongoose/index.test.d.ts +1 -0
  5. package/dist/adapters/mongoose/index.test.js +145 -0
  6. package/dist/adapters/mongoose/index.test.js.map +1 -0
  7. package/dist/adapters/mongoose/integration.test.d.ts +5 -0
  8. package/dist/adapters/mongoose/integration.test.js +217 -0
  9. package/dist/adapters/mongoose/integration.test.js.map +1 -0
  10. package/dist/ai/dolphin-agent/agent.d.ts +5 -0
  11. package/dist/ai/dolphin-agent/agent.js +93 -35
  12. package/dist/ai/dolphin-agent/agent.js.map +1 -1
  13. package/dist/ai/dolphin-agent/config.js +30 -37
  14. package/dist/ai/dolphin-agent/config.js.map +1 -1
  15. package/dist/auth/auth.test.d.ts +1 -0
  16. package/dist/auth/auth.test.js +286 -0
  17. package/dist/auth/auth.test.js.map +1 -0
  18. package/dist/authController/authController.test.d.ts +1 -0
  19. package/dist/authController/authController.test.js +359 -0
  20. package/dist/authController/authController.test.js.map +1 -0
  21. package/dist/bin/cli.js +494 -165
  22. package/dist/bin/cli.js.map +1 -1
  23. package/dist/client.test.d.ts +22 -0
  24. package/dist/client.test.js +573 -0
  25. package/dist/client.test.js.map +1 -0
  26. package/dist/controller/controller.test.d.ts +1 -0
  27. package/dist/controller/controller.test.js +37 -0
  28. package/dist/controller/controller.test.js.map +1 -0
  29. package/dist/curd/crud.test.d.ts +1 -0
  30. package/dist/curd/crud.test.js +104 -0
  31. package/dist/curd/crud.test.js.map +1 -0
  32. package/dist/demo-server.d.ts +1 -0
  33. package/dist/demo-server.js +191 -0
  34. package/dist/demo-server.js.map +1 -0
  35. package/dist/djson/djson.test.d.ts +1 -0
  36. package/dist/djson/djson.test.js +200 -0
  37. package/dist/djson/djson.test.js.map +1 -0
  38. package/dist/dolphin-bench.d.ts +1 -0
  39. package/dist/dolphin-bench.js +63 -0
  40. package/dist/dolphin-bench.js.map +1 -0
  41. package/dist/hard-performance-test.d.ts +1 -0
  42. package/dist/hard-performance-test.js +97 -0
  43. package/dist/hard-performance-test.js.map +1 -0
  44. package/dist/middleware/zod.test.d.ts +1 -0
  45. package/dist/middleware/zod.test.js +74 -0
  46. package/dist/middleware/zod.test.js.map +1 -0
  47. package/dist/performance-test.d.ts +1 -0
  48. package/dist/performance-test.js +92 -0
  49. package/dist/performance-test.js.map +1 -0
  50. package/dist/real-test-mongoose.d.ts +1 -0
  51. package/dist/real-test-mongoose.js +104 -0
  52. package/dist/real-test-mongoose.js.map +1 -0
  53. package/dist/realtime/camera.d.ts +119 -0
  54. package/dist/realtime/camera.js +299 -0
  55. package/dist/realtime/camera.js.map +1 -0
  56. package/dist/realtime/camera.test.d.ts +1 -0
  57. package/dist/realtime/camera.test.js +345 -0
  58. package/dist/realtime/camera.test.js.map +1 -0
  59. package/dist/realtime/index.d.ts +2 -0
  60. package/dist/realtime/index.js +2 -0
  61. package/dist/realtime/index.js.map +1 -1
  62. package/dist/realtime/realtime.test.d.ts +1 -0
  63. package/dist/realtime/realtime.test.js +623 -0
  64. package/dist/realtime/realtime.test.js.map +1 -0
  65. package/dist/realtime/rtsp.d.ts +65 -0
  66. package/dist/realtime/rtsp.js +410 -0
  67. package/dist/realtime/rtsp.js.map +1 -0
  68. package/dist/realtime/rtsp.test.d.ts +1 -0
  69. package/dist/realtime/rtsp.test.js +361 -0
  70. package/dist/realtime/rtsp.test.js.map +1 -0
  71. package/dist/router/router.test.d.ts +1 -0
  72. package/dist/router/router.test.js +45 -0
  73. package/dist/router/router.test.js.map +1 -0
  74. package/dist/server/server.test.d.ts +1 -0
  75. package/dist/server/server.test.js +299 -0
  76. package/dist/server/server.test.js.map +1 -0
  77. package/dist/services/ai-service.js +22 -11
  78. package/dist/services/ai-service.js.map +1 -1
  79. package/dist/signaling/signaling.test.d.ts +1 -0
  80. package/dist/signaling/signaling.test.js +112 -0
  81. package/dist/signaling/signaling.test.js.map +1 -0
  82. package/dist/swagger/swagger.js +31 -31
  83. package/dist/swagger/swagger.test.d.ts +1 -0
  84. package/dist/swagger/swagger.test.js +38 -0
  85. package/dist/swagger/swagger.test.js.map +1 -0
  86. package/dist/templates/index.d.ts +6 -0
  87. package/dist/templates/index.js +282 -105
  88. package/dist/templates/index.js.map +1 -1
  89. package/dist/test-2fa-real.d.ts +1 -0
  90. package/dist/test-2fa-real.js +105 -0
  91. package/dist/test-2fa-real.js.map +1 -0
  92. package/dist/test-dolphin.d.ts +1 -0
  93. package/dist/test-dolphin.js +98 -0
  94. package/dist/test-dolphin.js.map +1 -0
  95. package/dist/utils/ctx.d.ts +50 -0
  96. package/dist/utils/ctx.js +82 -0
  97. package/dist/utils/ctx.js.map +1 -0
  98. package/package.json +155 -45
  99. package/scripts/client.js +838 -0
  100. package/scripts/dolphin-persist.js +211 -0
@@ -0,0 +1,98 @@
1
+ // test-dolphin.ts
2
+ import { createDolphinServer } from "./server/server";
3
+ import { createDolphinController } from "./controller/controller";
4
+ import { createDolphinAuthController } from "./authController/authController";
5
+ // Mock Database Connection (Replacing ./config.js)
6
+ const dbConnect = async () => {
7
+ console.log("🛠️ Mock Database Connected");
8
+ };
9
+ // Mock Database Interface (Replacing ./auth/model.js)
10
+ const db = {
11
+ createUser: async (data) => ({ id: "123", ...data }),
12
+ findUserByEmail: async (email) => ({ id: "123", email, password: "hashed_password", role: "admin" }),
13
+ findUserById: async (id) => ({ id, email: "user@example.com", role: "admin" }),
14
+ updateUser: async (id, data) => ({ id, ...data }),
15
+ saveRefreshToken: async () => { },
16
+ findRefreshToken: async () => ({ userId: "123", expiresAt: new Date(Date.now() + 10000) }),
17
+ deleteRefreshToken: async () => { },
18
+ // For CRUD
19
+ read: async () => [{ id: "123", name: "John Doe" }],
20
+ create: async (data) => ({ id: "456", ...data }),
21
+ update: async (id, data) => ({ id, ...data }),
22
+ delete: async (id) => ({ id })
23
+ };
24
+ async function main() {
25
+ const app = createDolphinServer();
26
+ await dbConnect();
27
+ // ============ SETUP AUTH ============
28
+ const auth = createDolphinAuthController(db, {
29
+ secret: process.env.JWT_SECRET || 'my-super-secret-key',
30
+ cookieMaxAge: 7 * 24 * 60 * 60 * 1000, // 7 days
31
+ issuer: 'MyApp'
32
+ });
33
+ // ============ CRUD CONTROLLER ============
34
+ const userController = createDolphinController(db, "User");
35
+ // ============ PUBLIC ROUTES (No Auth) ============
36
+ app.post("/auth/register", async (ctx) => {
37
+ const result = await auth.register(ctx);
38
+ return result; // Using the new auto-reply feature!
39
+ });
40
+ app.post("/auth/login", async (ctx) => {
41
+ return await auth.login(ctx);
42
+ });
43
+ app.post("/auth/refresh", async (ctx) => {
44
+ return await auth.refresh(ctx);
45
+ });
46
+ // ============ PROTECTED ROUTES (Auth Required) ============
47
+ // ✅ NOW SUPPORTED: Multiple handlers (middleware + final handler)
48
+ app.get("/auth/me", auth.requireAuth, async (ctx) => {
49
+ const result = await auth.me(ctx);
50
+ return result;
51
+ });
52
+ app.post("/auth/logout", auth.requireAuth, async (ctx) => {
53
+ return await auth.logout(ctx);
54
+ });
55
+ // ============ PROTECTED CRUD ROUTES (Auth Required) ============
56
+ app.get("/user", auth.requireAuth, async (ctx) => {
57
+ const users = await userController.list(ctx, ctx.req.user?.id);
58
+ return users.map((user) => auth.sanitize(user));
59
+ });
60
+ app.post("/user", auth.requireAuth, async (ctx) => {
61
+ const user = await userController.create(ctx, ctx.req.user?.id);
62
+ return auth.sanitize(user);
63
+ });
64
+ // ============ ADMIN ROUTES ============
65
+ app.get("/admin/users", auth.requireAdmin, async (ctx) => {
66
+ const users = await userController.list(ctx);
67
+ return users.map(auth.sanitize);
68
+ });
69
+ // ============ START SERVER ============
70
+ const PORT = 3000;
71
+ app.listen(PORT, () => {
72
+ console.log(`
73
+ 🚀 Dolphin Server running on port ${PORT}
74
+
75
+ 📋 Available Routes:
76
+
77
+ 🔓 PUBLIC ROUTES:
78
+ ┌─────────────────────────────────────────────┐
79
+ │ POST /auth/register │
80
+ │ POST /auth/login │
81
+ │ POST /auth/refresh │
82
+ ├─────────────────────────────────────────────┤
83
+ │ 🔒 PROTECTED ROUTES (Auth Required): │
84
+ │ GET /auth/me │
85
+ │ POST /auth/logout │
86
+ ├─────────────────────────────────────────────┤
87
+ │ 👤 USER CRUD (Protected): │
88
+ │ GET /user │
89
+ │ POST /user │
90
+ ├─────────────────────────────────────────────┤
91
+ │ 👑 ADMIN ROUTES: │
92
+ │ GET /admin/users │
93
+ └─────────────────────────────────────────────┘
94
+ `);
95
+ });
96
+ }
97
+ main().catch(console.error);
98
+ //# sourceMappingURL=test-dolphin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-dolphin.js","sourceRoot":"","sources":["../src/test-dolphin.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,mDAAmD;AACnD,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,sDAAsD;AACtD,MAAM,EAAE,GAAQ;IACd,UAAU,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;IACzD,eAAe,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5G,YAAY,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACtF,UAAU,EAAE,KAAK,EAAE,EAAU,EAAE,IAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;IAC9D,gBAAgB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;IAChC,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAC1F,kBAAkB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;IAClC,WAAW;IACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACnD,MAAM,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;IACrD,MAAM,EAAE,KAAK,EAAE,EAAU,EAAE,IAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;CACvC,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,MAAM,SAAS,EAAE,CAAC;IAElB,uCAAuC;IACvC,MAAM,IAAI,GAAG,2BAA2B,CAAC,EAAE,EAAE;QAC3C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,qBAAqB;QACvD,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS;QAChD,MAAM,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,cAAc,GAAG,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAE3D,oDAAoD;IACpD,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,CAAC,oCAAoC;IACrD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,kEAAkE;IAClE,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,kEAAkE;IAClE,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC;sCACsB,IAAI;;;;;;;;;;;;;;;;;;;;;KAqBrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Dolphin Universal Context Builder
3
+ *
4
+ * Dolphin modules (auth-controller, crud, router) ले ctx object use गर्छन्।
5
+ * यो helper ले कुनै पनि framework को req/res बाट ctx बनाउँछ।
6
+ *
7
+ * ─── Express ──────────────────────────────────────────────────────
8
+ * import { createCtx } from 'dolphin-server-modules/utils/ctx';
9
+ * app.post('/login', (req, res) => auth.login(createCtx(req, res)));
10
+ *
11
+ * ─── Fastify ──────────────────────────────────────────────────────
12
+ * fastify.post('/login', (req, reply) =>
13
+ * auth.login(createCtx(req.raw, reply.raw, req.body, req.params, req.query))
14
+ * );
15
+ *
16
+ * ─── Next.js API Route ────────────────────────────────────────────
17
+ * export default async function handler(req, res) {
18
+ * return auth.login(createCtx(req, res));
19
+ * }
20
+ *
21
+ * ─── Hono ─────────────────────────────────────────────────────────
22
+ * app.post('/login', async (c) => {
23
+ * const ctx = createCtx(c.req.raw, c.res, await c.req.json(), c.req.param());
24
+ * return auth.login(ctx);
25
+ * });
26
+ */
27
+ export interface DolphinCtx {
28
+ req: any;
29
+ res: any;
30
+ params: Record<string, string>;
31
+ query: Record<string, string>;
32
+ body: any;
33
+ state: Record<string, any>;
34
+ json: (data: any, status?: number) => DolphinCtx;
35
+ text: (data: any, status?: number) => DolphinCtx;
36
+ html: (data: any, status?: number) => DolphinCtx;
37
+ status: (code: number) => DolphinCtx;
38
+ setHeader: (name: string, value: string) => DolphinCtx;
39
+ getHeader: (name: string) => string | undefined;
40
+ }
41
+ /**
42
+ * कुनै पनि framework को req/res बाट Dolphin ctx बनाउने
43
+ * @param req - Express req / Fastify request.raw / Next.js req / Node.js IncomingMessage
44
+ * @param res - Express res / Fastify reply.raw / Next.js res / Node.js ServerResponse
45
+ * @param body - parsed body (req.body वा await req.json())
46
+ * @param params - route params ({ id: '123' })
47
+ * @param query - query string params
48
+ */
49
+ export declare function createCtx(req: any, res: any, body?: any, params?: Record<string, string>, query?: Record<string, string>): DolphinCtx;
50
+ export default createCtx;
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Dolphin Universal Context Builder
3
+ *
4
+ * Dolphin modules (auth-controller, crud, router) ले ctx object use गर्छन्।
5
+ * यो helper ले कुनै पनि framework को req/res बाट ctx बनाउँछ।
6
+ *
7
+ * ─── Express ──────────────────────────────────────────────────────
8
+ * import { createCtx } from 'dolphin-server-modules/utils/ctx';
9
+ * app.post('/login', (req, res) => auth.login(createCtx(req, res)));
10
+ *
11
+ * ─── Fastify ──────────────────────────────────────────────────────
12
+ * fastify.post('/login', (req, reply) =>
13
+ * auth.login(createCtx(req.raw, reply.raw, req.body, req.params, req.query))
14
+ * );
15
+ *
16
+ * ─── Next.js API Route ────────────────────────────────────────────
17
+ * export default async function handler(req, res) {
18
+ * return auth.login(createCtx(req, res));
19
+ * }
20
+ *
21
+ * ─── Hono ─────────────────────────────────────────────────────────
22
+ * app.post('/login', async (c) => {
23
+ * const ctx = createCtx(c.req.raw, c.res, await c.req.json(), c.req.param());
24
+ * return auth.login(ctx);
25
+ * });
26
+ */
27
+ /**
28
+ * कुनै पनि framework को req/res बाट Dolphin ctx बनाउने
29
+ * @param req - Express req / Fastify request.raw / Next.js req / Node.js IncomingMessage
30
+ * @param res - Express res / Fastify reply.raw / Next.js res / Node.js ServerResponse
31
+ * @param body - parsed body (req.body वा await req.json())
32
+ * @param params - route params ({ id: '123' })
33
+ * @param query - query string params
34
+ */
35
+ export function createCtx(req, res, body, params = {}, query = {}) {
36
+ // Auto-detect body from common frameworks
37
+ const resolvedBody = body ?? req.body ?? {};
38
+ const resolvedQuery = query && Object.keys(query).length
39
+ ? query
40
+ : req.query ?? {};
41
+ const resolvedParams = params && Object.keys(params).length
42
+ ? params
43
+ : req.params ?? {};
44
+ let pendingStatus = 200;
45
+ const send = (data, contentType, status = 200) => {
46
+ if (res.headersSent || res.writableEnded)
47
+ return ctx;
48
+ const finalStatus = status !== undefined ? status : pendingStatus;
49
+ // Express / Node.js style
50
+ if (typeof res.status === 'function' && typeof res.json === 'function') {
51
+ res.status(finalStatus).setHeader('Content-Type', contentType);
52
+ contentType === 'application/json'
53
+ ? res.json(data)
54
+ : res.end(String(data));
55
+ }
56
+ else {
57
+ // Raw Node.js ServerResponse
58
+ res.statusCode = finalStatus;
59
+ res.setHeader('Content-Type', contentType);
60
+ res.end(contentType === 'application/json' ? JSON.stringify(data) : String(data));
61
+ }
62
+ pendingStatus = 200;
63
+ return ctx;
64
+ };
65
+ const ctx = {
66
+ req,
67
+ res,
68
+ params: resolvedParams,
69
+ query: resolvedQuery,
70
+ body: resolvedBody,
71
+ state: {},
72
+ json: (data, status = 200) => send(data, 'application/json', status),
73
+ text: (data, status = 200) => send(data, 'text/plain', status),
74
+ html: (data, status = 200) => send(data, 'text/html', status),
75
+ status: (code) => { pendingStatus = code; return ctx; },
76
+ setHeader: (name, value) => { res.setHeader(name, value); return ctx; },
77
+ getHeader: (name) => req.headers?.[name.toLowerCase()],
78
+ };
79
+ return ctx;
80
+ }
81
+ export default createCtx;
82
+ //# sourceMappingURL=ctx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../../src/utils/ctx.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,46 +1,156 @@
1
- {
2
- "name": "dolphin-server-modules",
3
- "version": "2.11.0",
4
- "type": "module",
5
- "homepage": "https://github.com/Phuyalshankar/dolphin-server-modules#readme",
6
- "description": "Core utility modules for Auth, CRUD, and Controllers",
7
- "main": "dist/index.js",
8
- "bin": {
9
- "dolphin": "dist/bin/cli.js"
10
- },
11
- "files": [
12
- "dist",
13
- "README.md",
14
- "LICENSE",
15
- "DOLPHIN_MASTER_GUIDE_NEPALI.md"
16
- ],
17
- "scripts": {
18
- "build": "tsc",
19
- "dev": "tsc -w",
20
- "test": "jest"
21
- },
22
- "keywords": [
23
- "dolphin",
24
- "framework",
25
- "server",
26
- "auth",
27
- "crud"
28
- ],
29
- "author": "Phuyal Shankar",
30
- "license": "MIT",
31
- "dependencies": {
32
- "@google/generative-ai": "^0.11.0",
33
- "chalk": "^5.3.0",
34
- "dotenv": "^16.4.5",
35
- "express": "^4.19.2",
36
- "mongoose": "^8.3.4",
37
- "node-fetch": "^3.3.2",
38
- "ora": "^8.0.1"
39
- },
40
- "devDependencies": {
41
- "@types/express": "^4.17.21",
42
- "@types/node": "^20.12.11",
43
- "ts-node": "^10.9.2",
44
- "typescript": "^5.4.5"
45
- }
1
+ {
2
+ "name": "dolphin-server-modules",
3
+ "version": "2.11.2",
4
+ "type": "module",
5
+ "homepage": "https://github.com/Phuyalshankar/dolphin-server-modules#readme",
6
+ "description": "Core utility modules for Auth, CRUD, and Controllers",
7
+ "main": "dist/index.js",
8
+ "bin": {
9
+ "dolphin": "dist/bin/cli.js",
10
+ "dolphin-server": "dist/bin/cli.js"
11
+ },
12
+ "types": "dist/index.d.ts",
13
+ "files": [
14
+ "dist",
15
+ "README.md",
16
+ "LICENSE",
17
+ "TUTORIAL_NEPALI.md",
18
+ "DOLPHIN_MASTER_GUIDE_NEPALI.md",
19
+ "scripts/client.js",
20
+ "scripts/dolphin-persist.js"
21
+ ],
22
+ "exports": {
23
+ ".": {
24
+ "types": "./dist/index.d.ts",
25
+ "default": "./dist/index.js"
26
+ },
27
+ "./auth": {
28
+ "types": "./dist/auth/auth.d.ts",
29
+ "default": "./dist/auth/auth.js"
30
+ },
31
+ "./auth-controller": {
32
+ "types": "./dist/authController/authController.d.ts",
33
+ "default": "./dist/authController/authController.js"
34
+ },
35
+ "./controller": {
36
+ "types": "./dist/controller/controller.d.ts",
37
+ "default": "./dist/controller/controller.js"
38
+ },
39
+ "./crud": {
40
+ "types": "./dist/curd/crud.d.ts",
41
+ "default": "./dist/curd/crud.js"
42
+ },
43
+ "./curd": {
44
+ "types": "./dist/curd/crud.d.ts",
45
+ "default": "./dist/curd/crud.js"
46
+ },
47
+ "./middleware/zod": {
48
+ "types": "./dist/middleware/zod.d.ts",
49
+ "default": "./dist/middleware/zod.js"
50
+ },
51
+ "./adapters/mongoose": {
52
+ "types": "./dist/adapters/mongoose/index.d.ts",
53
+ "default": "./dist/adapters/mongoose/index.js"
54
+ },
55
+ "./server": {
56
+ "types": "./dist/server/server.d.ts",
57
+ "default": "./dist/server/server.js"
58
+ },
59
+ "./router": {
60
+ "types": "./dist/router/router.d.ts",
61
+ "default": "./dist/router/router.js"
62
+ },
63
+ "./realtime": {
64
+ "types": "./dist/realtime/index.d.ts",
65
+ "default": "./dist/realtime/index.js"
66
+ },
67
+ "./realtime/core": {
68
+ "types": "./dist/realtime/core.d.ts",
69
+ "default": "./dist/realtime/core.js"
70
+ },
71
+ "./realtime/trie": {
72
+ "types": "./dist/realtime/trie.d.ts",
73
+ "default": "./dist/realtime/trie.js"
74
+ },
75
+ "./realtime/codec": {
76
+ "types": "./dist/realtime/codec.d.ts",
77
+ "default": "./dist/realtime/codec.js"
78
+ },
79
+ "./realtime/plugins": {
80
+ "types": "./dist/realtime/plugins.d.ts",
81
+ "default": "./dist/realtime/plugins.js"
82
+ },
83
+ "./realtime/camera": {
84
+ "types": "./dist/realtime/camera.d.ts",
85
+ "default": "./dist/realtime/camera.js"
86
+ },
87
+ "./realtime/rtsp": {
88
+ "types": "./dist/realtime/rtsp.d.ts",
89
+ "default": "./dist/realtime/rtsp.js"
90
+ },
91
+ "./swagger": {
92
+ "types": "./dist/swagger/swagger.d.ts",
93
+ "default": "./dist/swagger/swagger.js"
94
+ },
95
+ "./djson": {
96
+ "types": "./dist/djson/djson.d.ts",
97
+ "default": "./dist/djson/djson.js"
98
+ },
99
+ "./signaling": {
100
+ "types": "./dist/signaling/index.d.ts",
101
+ "default": "./dist/signaling/index.js"
102
+ },
103
+ "./cli": "./dist/bin/cli.js",
104
+ "./client": "./scripts/client.js",
105
+ "./utils/ctx": {
106
+ "types": "./dist/utils/ctx.d.ts",
107
+ "default": "./dist/utils/ctx.js"
108
+ }
109
+ },
110
+ "scripts": {
111
+ "build": "tsc",
112
+ "start": "node dist/demo-server.js",
113
+ "dolphin": "node dist/bin/cli.js",
114
+ "dev": "npm run build && npm run start",
115
+ "test": "jest",
116
+ "prepublishOnly": "npm run build"
117
+ },
118
+ "keywords": [
119
+ "dolphin",
120
+ "server",
121
+ "auth",
122
+ "crud",
123
+ "controller",
124
+ "realtime",
125
+ "iot",
126
+ "2fa",
127
+ "jwt"
128
+ ],
129
+ "author": "Shankar Phuyal",
130
+ "license": "ISC",
131
+ "dependencies": {
132
+ "argon2": "^0.40.1",
133
+ "ioredis": "^5.10.1",
134
+ "jsonwebtoken": "^9.0.3",
135
+ "mongoose": "^9.3.2",
136
+ "ws": "^8.20.0",
137
+ "zod": "^4.3.6"
138
+ },
139
+ "devDependencies": {
140
+ "@types/jest": "^29.5.12",
141
+ "@types/jsonwebtoken": "^9.0.10",
142
+ "@types/node": "^20.11.30",
143
+ "@types/ws": "^8.18.1",
144
+ "jest": "^29.7.0",
145
+ "mongodb-memory-server": "^11.0.1",
146
+ "ts-jest": "^29.1.2",
147
+ "typescript": "^5.4.3"
148
+ },
149
+ "repository": {
150
+ "type": "git",
151
+ "url": "git+https://github.com/Phuyalshankar/dolphin-server-modules.git"
152
+ },
153
+ "bugs": {
154
+ "url": "https://github.com/Phuyalshankar/dolphin-server-modules/issues"
155
+ }
46
156
  }