dolphin-server-modules 2.11.1 → 2.11.3

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 (112) hide show
  1. package/TUTORIAL_NEPALI.md +181 -0
  2. package/dist/adapters/mongoose/index.test.d.ts +1 -0
  3. package/dist/adapters/mongoose/index.test.js +145 -0
  4. package/dist/adapters/mongoose/index.test.js.map +1 -0
  5. package/dist/adapters/mongoose/integration.test.d.ts +5 -0
  6. package/dist/adapters/mongoose/integration.test.js +217 -0
  7. package/dist/adapters/mongoose/integration.test.js.map +1 -0
  8. package/dist/ai/dolphin-agent/agent.d.ts +5 -0
  9. package/dist/ai/dolphin-agent/agent.js +93 -46
  10. package/dist/ai/dolphin-agent/agent.js.map +1 -1
  11. package/dist/ai/dolphin-agent/config.js +19 -23
  12. package/dist/ai/dolphin-agent/config.js.map +1 -1
  13. package/dist/auth/auth.test.d.ts +1 -0
  14. package/dist/auth/auth.test.js +286 -0
  15. package/dist/auth/auth.test.js.map +1 -0
  16. package/dist/authController/authController.test.d.ts +1 -0
  17. package/dist/authController/authController.test.js +359 -0
  18. package/dist/authController/authController.test.js.map +1 -0
  19. package/dist/bin/cli.js +494 -131
  20. package/dist/bin/cli.js.map +1 -1
  21. package/dist/client.test.d.ts +22 -0
  22. package/dist/client.test.js +573 -0
  23. package/dist/client.test.js.map +1 -0
  24. package/dist/controller/controller.test.d.ts +1 -0
  25. package/dist/controller/controller.test.js +37 -0
  26. package/dist/controller/controller.test.js.map +1 -0
  27. package/dist/curd/crud.test.d.ts +1 -0
  28. package/dist/curd/crud.test.js +104 -0
  29. package/dist/curd/crud.test.js.map +1 -0
  30. package/dist/demo-server.d.ts +1 -0
  31. package/dist/demo-server.js +191 -0
  32. package/dist/demo-server.js.map +1 -0
  33. package/dist/djson/djson.test.d.ts +1 -0
  34. package/dist/djson/djson.test.js +200 -0
  35. package/dist/djson/djson.test.js.map +1 -0
  36. package/dist/dolphin-bench.d.ts +1 -0
  37. package/dist/dolphin-bench.js +63 -0
  38. package/dist/dolphin-bench.js.map +1 -0
  39. package/dist/hard-performance-test.d.ts +1 -0
  40. package/dist/hard-performance-test.js +97 -0
  41. package/dist/hard-performance-test.js.map +1 -0
  42. package/dist/index.d.ts +12 -0
  43. package/dist/index.js +11 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/middleware/zod.test.d.ts +1 -0
  46. package/dist/middleware/zod.test.js +74 -0
  47. package/dist/middleware/zod.test.js.map +1 -0
  48. package/dist/performance-test.d.ts +1 -0
  49. package/dist/performance-test.js +92 -0
  50. package/dist/performance-test.js.map +1 -0
  51. package/dist/real-test-mongoose.d.ts +1 -0
  52. package/dist/real-test-mongoose.js +104 -0
  53. package/dist/real-test-mongoose.js.map +1 -0
  54. package/dist/realtime/camera.d.ts +119 -0
  55. package/dist/realtime/camera.js +299 -0
  56. package/dist/realtime/camera.js.map +1 -0
  57. package/dist/realtime/camera.test.d.ts +1 -0
  58. package/dist/realtime/camera.test.js +345 -0
  59. package/dist/realtime/camera.test.js.map +1 -0
  60. package/dist/realtime/core.d.ts +4 -4
  61. package/dist/realtime/core.js +5 -5
  62. package/dist/realtime/core.js.map +1 -1
  63. package/dist/realtime/index.d.ts +2 -0
  64. package/dist/realtime/index.js +2 -0
  65. package/dist/realtime/index.js.map +1 -1
  66. package/dist/realtime/realtime.test.d.ts +1 -0
  67. package/dist/realtime/realtime.test.js +623 -0
  68. package/dist/realtime/realtime.test.js.map +1 -0
  69. package/dist/realtime/rtsp.d.ts +65 -0
  70. package/dist/realtime/rtsp.js +410 -0
  71. package/dist/realtime/rtsp.js.map +1 -0
  72. package/dist/realtime/rtsp.test.d.ts +1 -0
  73. package/dist/realtime/rtsp.test.js +361 -0
  74. package/dist/realtime/rtsp.test.js.map +1 -0
  75. package/dist/router/router.test.d.ts +1 -0
  76. package/dist/router/router.test.js +45 -0
  77. package/dist/router/router.test.js.map +1 -0
  78. package/dist/server/server.d.ts +8 -8
  79. package/dist/server/server.js +1 -10
  80. package/dist/server/server.js.map +1 -1
  81. package/dist/server/server.test.d.ts +1 -0
  82. package/dist/server/server.test.js +299 -0
  83. package/dist/server/server.test.js.map +1 -0
  84. package/dist/services/ai-service.js +22 -11
  85. package/dist/services/ai-service.js.map +1 -1
  86. package/dist/signaling/signaling.test.d.ts +1 -0
  87. package/dist/signaling/signaling.test.js +112 -0
  88. package/dist/signaling/signaling.test.js.map +1 -0
  89. package/dist/swagger/swagger.test.d.ts +1 -0
  90. package/dist/swagger/swagger.test.js +38 -0
  91. package/dist/swagger/swagger.test.js.map +1 -0
  92. package/dist/templates/index.d.ts +6 -0
  93. package/dist/templates/index.js +247 -70
  94. package/dist/templates/index.js.map +1 -1
  95. package/dist/test-2fa-real.d.ts +1 -0
  96. package/dist/test-2fa-real.js +105 -0
  97. package/dist/test-2fa-real.js.map +1 -0
  98. package/dist/test-dolphin.d.ts +1 -0
  99. package/dist/test-dolphin.js +98 -0
  100. package/dist/test-dolphin.js.map +1 -0
  101. package/dist/utils/ctx.d.ts +50 -0
  102. package/dist/utils/ctx.js +82 -0
  103. package/dist/utils/ctx.js.map +1 -0
  104. package/package.json +171 -65
  105. package/scripts/client.js +838 -703
  106. package/scripts/benchmark.js +0 -12
  107. package/scripts/benchmark.ts +0 -12
  108. package/scripts/list-models.js +0 -34
  109. package/scripts/run-real-ai-test.js +0 -79
  110. package/scripts/test-ai-logic.js +0 -44
  111. package/scripts/test-client.js +0 -105
  112. package/scripts/test-dolphin.js +0 -36
@@ -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,65 +1,171 @@
1
- {
2
- "name": "dolphin-server-modules",
3
- "version": "2.11.1",
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
- "exports": {
9
- ".": "./dist/index.js",
10
- "./server": "./dist/server/server.js",
11
- "./router": "./dist/router/router.js",
12
- "./adapters/mongoose": "./dist/adapters/mongoose/index.js",
13
- "./auth-controller": "./dist/authController/authController.js",
14
- "./crud": "./dist/curd/crud.js"
15
- },
16
- "bin": {
17
- "dolphin": "dist/bin/cli.js"
18
- },
19
- "files": [
20
- "dist",
21
- "scripts",
22
- "README.md",
23
- "LICENSE",
24
- "DOLPHIN_MASTER_GUIDE_NEPALI.md"
25
- ],
26
- "scripts": {
27
- "build": "tsc",
28
- "dev": "tsc -w",
29
- "test": "jest"
30
- },
31
- "keywords": [
32
- "dolphin",
33
- "framework",
34
- "server",
35
- "auth",
36
- "crud"
37
- ],
38
- "author": "Phuyal Shankar",
39
- "license": "MIT",
40
- "dependencies": {
41
- "@google/generative-ai": "^0.11.0",
42
- "chalk": "^5.3.0",
43
- "dotenv": "^16.4.5",
44
- "express": "^4.19.2",
45
- "mongoose": "^8.3.4",
46
- "node-fetch": "^3.3.2",
47
- "ora": "^8.0.1",
48
- "ws": "^8.20.0"
49
- },
50
- "devDependencies": {
51
- "@types/express": "^4.17.21",
52
- "@types/ioredis": "^4.28.10",
53
- "@types/jest": "^29.5.14",
54
- "@types/node": "^20.12.11",
55
- "@types/supertest": "^7.2.0",
56
- "@types/ws": "^8.18.1",
57
- "ioredis": "^5.10.1",
58
- "jest": "^29.7.0",
59
- "mongodb-memory-server": "^11.0.1",
60
- "supertest": "^7.2.2",
61
- "ts-jest": "^29.4.9",
62
- "ts-node": "^10.9.2",
63
- "typescript": "^5.4.5"
64
- }
65
- }
1
+ {
2
+ "name": "dolphin-server-modules",
3
+ "version": "2.11.3",
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.js": "./dist/auth/auth.js",
32
+ "./auth-controller": {
33
+ "types": "./dist/authController/authController.d.ts",
34
+ "default": "./dist/authController/authController.js"
35
+ },
36
+ "./auth-controller.js": "./dist/authController/authController.js",
37
+ "./controller": {
38
+ "types": "./dist/controller/controller.d.ts",
39
+ "default": "./dist/controller/controller.js"
40
+ },
41
+ "./controller.js": "./dist/controller/controller.js",
42
+ "./crud": {
43
+ "types": "./dist/curd/crud.d.ts",
44
+ "default": "./dist/curd/crud.js"
45
+ },
46
+ "./crud.js": "./dist/curd/crud.js",
47
+ "./curd": {
48
+ "types": "./dist/curd/crud.d.ts",
49
+ "default": "./dist/curd/crud.js"
50
+ },
51
+ "./curd.js": "./dist/curd/crud.js",
52
+ "./middleware/zod": {
53
+ "types": "./dist/middleware/zod.d.ts",
54
+ "default": "./dist/middleware/zod.js"
55
+ },
56
+ "./middleware/zod.js": "./dist/middleware/zod.js",
57
+ "./adapters/mongoose": {
58
+ "types": "./dist/adapters/mongoose/index.d.ts",
59
+ "default": "./dist/adapters/mongoose/index.js"
60
+ },
61
+ "./adapters/mongoose/index.js": "./dist/adapters/mongoose/index.js",
62
+ "./server": {
63
+ "types": "./dist/server/server.d.ts",
64
+ "default": "./dist/server/server.js"
65
+ },
66
+ "./server.js": "./dist/server/server.js",
67
+ "./router": {
68
+ "types": "./dist/router/router.d.ts",
69
+ "default": "./dist/router/router.js"
70
+ },
71
+ "./router.js": "./dist/router/router.js",
72
+ "./realtime": {
73
+ "types": "./dist/realtime/index.d.ts",
74
+ "default": "./dist/realtime/index.js"
75
+ },
76
+ "./realtime.js": "./dist/realtime/index.js",
77
+ "./realtime/core": {
78
+ "types": "./dist/realtime/core.d.ts",
79
+ "default": "./dist/realtime/core.js"
80
+ },
81
+ "./realtime/trie": {
82
+ "types": "./dist/realtime/trie.d.ts",
83
+ "default": "./dist/realtime/trie.js"
84
+ },
85
+ "./realtime/codec": {
86
+ "types": "./dist/realtime/codec.d.ts",
87
+ "default": "./dist/realtime/codec.js"
88
+ },
89
+ "./realtime/codec.js": "./dist/realtime/codec.js",
90
+ "./realtime/plugins": {
91
+ "types": "./dist/realtime/plugins.d.ts",
92
+ "default": "./dist/realtime/plugins.js"
93
+ },
94
+ "./realtime/camera": {
95
+ "types": "./dist/realtime/camera.d.ts",
96
+ "default": "./dist/realtime/camera.js"
97
+ },
98
+ "./realtime/rtsp": {
99
+ "types": "./dist/realtime/rtsp.d.ts",
100
+ "default": "./dist/realtime/rtsp.js"
101
+ },
102
+ "./swagger": {
103
+ "types": "./dist/swagger/swagger.d.ts",
104
+ "default": "./dist/swagger/swagger.js"
105
+ },
106
+ "./swagger.js": "./dist/swagger/swagger.js",
107
+ "./djson": {
108
+ "types": "./dist/djson/djson.d.ts",
109
+ "default": "./dist/djson/djson.js"
110
+ },
111
+ "./djson.js": "./dist/djson/djson.js",
112
+ "./signaling": {
113
+ "types": "./dist/signaling/index.d.ts",
114
+ "default": "./dist/signaling/index.js"
115
+ },
116
+ "./signaling/index.js": "./dist/signaling/index.js",
117
+ "./cli": "./dist/bin/cli.js",
118
+ "./client": "./scripts/client.js",
119
+ "./utils/ctx": {
120
+ "types": "./dist/utils/ctx.d.ts",
121
+ "default": "./dist/utils/ctx.js"
122
+ },
123
+ "./utils/ctx.js": "./dist/utils/ctx.js"
124
+ },
125
+ "scripts": {
126
+ "build": "tsc",
127
+ "start": "node dist/demo-server.js",
128
+ "dolphin": "node dist/bin/cli.js",
129
+ "dev": "npm run build && npm run start",
130
+ "test": "jest",
131
+ "prepublishOnly": "npm run build"
132
+ },
133
+ "keywords": [
134
+ "dolphin",
135
+ "server",
136
+ "auth",
137
+ "crud",
138
+ "controller",
139
+ "realtime",
140
+ "iot",
141
+ "2fa",
142
+ "jwt"
143
+ ],
144
+ "author": "Shankar Phuyal",
145
+ "license": "ISC",
146
+ "dependencies": {
147
+ "argon2": "^0.40.1",
148
+ "ioredis": "^5.10.1",
149
+ "jsonwebtoken": "^9.0.3",
150
+ "mongoose": "^9.3.2",
151
+ "ws": "^8.20.0",
152
+ "zod": "^4.3.6"
153
+ },
154
+ "devDependencies": {
155
+ "@types/jest": "^29.5.12",
156
+ "@types/jsonwebtoken": "^9.0.10",
157
+ "@types/node": "^20.11.30",
158
+ "@types/ws": "^8.18.1",
159
+ "jest": "^29.7.0",
160
+ "mongodb-memory-server": "^11.0.1",
161
+ "ts-jest": "^29.1.2",
162
+ "typescript": "^5.4.3"
163
+ },
164
+ "repository": {
165
+ "type": "git",
166
+ "url": "git+https://github.com/Phuyalshankar/dolphin-server-modules.git"
167
+ },
168
+ "bugs": {
169
+ "url": "https://github.com/Phuyalshankar/dolphin-server-modules/issues"
170
+ }
171
+ }