dolphin-server-modules 1.6.1 → 1.7.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.5.6)
1
+ # 🐬 Dolphin Framework (v1.7.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
 
@@ -22,6 +22,7 @@ Dolphin Framework को विस्तृत र आधिकारिक ग
22
22
  - **Auto-JSON Serialization**: Simply `return` an object from your handler!
23
23
  - **Industrial IoT (IIoT)**: Native support for HL7, Modbus, and DICOM via binary plugins.
24
24
  - **Unified Context (ctx)**: Modern developer experience with legacy middleware support.
25
+ - **Server-Served Client Library**: Zero-dependency frontend library for API, Auth, and Realtime—directly from your server.
25
26
 
26
27
  ---
27
28
 
@@ -47,7 +48,31 @@ app.get('/ping', (ctx) => {
47
48
  app.listen(3000, () => console.log("🐬 Dolphin swimming on port 3000"));
48
49
  ```
49
50
 
50
- ### 2. Full CRUD API with Mongoose (v1.5.5)
51
+ ### 2. Full-stack Client Library (No NPM needed!)
52
+ Dolphin now serves its own client-side library. Just include a script tag and you get Auth, API, and Realtime out of the box.
53
+
54
+ ```html
55
+ <!-- In your index.html -->
56
+ <script src="/dolphin-client.js"></script>
57
+
58
+ <script>
59
+ async function init() {
60
+ // 1. Auth & Token Management
61
+ await dolphin.auth.login("admin@test.com", "password123");
62
+
63
+ // 2. API + Auto-Auth Headers
64
+ const data = await dolphin.api.get('/products');
65
+
66
+ // 3. Realtime Mirroring & Pub/Sub
67
+ await dolphin.connect();
68
+ dolphin.onSignal(sig => {
69
+ if(sig.type === 'MIRROR') window.location.href = sig.data.url;
70
+ });
71
+ }
72
+ </script>
73
+ ```
74
+
75
+ ### 3. Full CRUD API with Mongoose (v1.7.0)
51
76
 
52
77
  > **Important:** Use `enforceOwnership: false` for public APIs (no auth required).
53
78
  > Default is `true` — requires `userId` from auth middleware.
@@ -117,6 +142,7 @@ rt.subscribe('factory/machine/+', (data) => {
117
142
  | **IoT Plugins** | `/realtime/plugins` | Native parsers for HL7, Modbus, and DICOM. |
118
143
  | **Signaling** | `/signaling` | Universal WebRTC & Control Signaling module. |
119
144
  | **Mongoose Adapter** | `/adapters/mongoose` | Full Mongoose ↔ CRUD bridge with query mapping. |
145
+ | **Client Lib** | `/dolphin-client.js` | Zero-dependency full-stack JS client. |
120
146
 
121
147
  ---
122
148
 
@@ -1,4 +1,4 @@
1
- # Dolphin Framework: 0 to 100% Full Tutorial (Nepali) 🐬
1
+ # Dolphin Framework: 0 to 100% Full Tutorial (Nepali) 🐬 [v1.7.0]
2
2
 
3
3
  Dolphin Framework मा तपाईँलाई स्वागत छ! यो गाइडमा हामी Dolphin प्रयोग गरेर एउटा शक्तिशाली, छिटो र आधुनिक API कसरी बनाउने भनेर सुरुदेखि अन्त्यसम्म सिक्नेछौँ।
4
4
 
@@ -229,7 +229,34 @@ await signaling.sendCommand('DoctorApp', 'Machine_01', { action: 'START' });
229
229
 
230
230
  ---
231
231
 
232
- ## १४. अन्तिममा (Conclusion)
232
+ ## १५. डल्फिन क्लाइन्ट लाइब्रेरी (Full-stack Client Library) [NEW]
233
+
234
+ डल्फिन सर्भरले अब आफैँ एउटा हलुका क्लाइन्ट लाइब्रेरी उपलब्ध गराउँछ। यसका लागि तपाईँले NPM इन्स्टल गर्नु पर्दैन।
235
+
236
+ ### क. लाइब्रेरी लोड गर्ने
237
+ ```html
238
+ <script src="/dolphin-client.js"></script>
239
+ ```
240
+
241
+ ### ख. प्रयोग गर्ने तरिका (API, Auth & Realtime)
242
+ ```javascript
243
+ // १. अटो-इनिशियलाइज्ड 'dolphin' अब्जेक्ट प्रयोग गर्नुहोस्
244
+ async function setup() {
245
+ // २. लगइन गर्ने
246
+ await dolphin.auth.login("admin@test.com", "password");
247
+
248
+ // ३. डेटा फेच गर्ने (अटोमेटिक टोकन म्यानेजमेन्ट)
249
+ const products = await dolphin.api.get('/products');
250
+
251
+ // ४. रियल-टाइम पब-सब (Pub/Sub)
252
+ await dolphin.connect();
253
+ dolphin.subscribe("alerts", (data) => console.log("Alert:", data));
254
+ }
255
+ ```
256
+
257
+ ---
258
+
259
+ ## १६. अन्तिममा (Conclusion)
233
260
 
234
261
  Dolphin Framework निकै छिटो र सजिलो छ। यसले तपाईँको ब्याकइन्ड डेभलपमेन्टको अनुभवलाई नयाँ उचाइमा पुर्‍याउँछ।
235
262
 
@@ -5,10 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createDolphinServer = createDolphinServer;
7
7
  const node_http_1 = __importDefault(require("node:http"));
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_path_1 = __importDefault(require("node:path"));
8
10
  const ws_1 = require("ws");
9
11
  const router_1 = require("../router/router");
10
12
  function createDolphinServer(options = {}) {
11
13
  const router = (0, router_1.createDolphinRouter)();
14
+ // Automatically serve the client library
15
+ router.get('/dolphin-client.js', (ctx) => {
16
+ const clientPath = node_path_1.default.join(process.cwd(), 'scripts', 'client.js');
17
+ if (node_fs_1.default.existsSync(clientPath)) {
18
+ const content = node_fs_1.default.readFileSync(clientPath, 'utf8');
19
+ ctx.setHeader('Content-Type', 'application/javascript');
20
+ ctx.res.end(content);
21
+ return;
22
+ }
23
+ return ctx.status(404).json({ error: 'Client library not found' });
24
+ });
12
25
  const middlewares = [];
13
26
  const wss = new ws_1.WebSocketServer({ noServer: true });
14
27
  const server = node_http_1.default.createServer(async (req, res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../server/server.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare enum SignalType {
8
8
  COMMAND = "COMMAND",
9
9
  COMMAND_ACK = "COMMAND_ACK",
10
10
  TELEMETRY = "TELEMETRY",
11
+ MIRROR = "MIRROR",
11
12
  ACK = "ACK"
12
13
  }
13
14
  export interface SignalingPayload {
@@ -39,6 +40,10 @@ export declare class UniversalSignaling {
39
40
  iceCandidate(from: string, to: string, candidate: any): Promise<boolean>;
40
41
  sendCommand(from: string, to: string, commandData: any, requireAck?: boolean): Promise<boolean>;
41
42
  sendTelemetry(from: string, to: string | 'all', telemetryData: any): Promise<void>;
43
+ /**
44
+ * Mirror a URL to a specific device's pane
45
+ */
46
+ mirror(from: string, to: string, url: string, options?: any): Promise<boolean>;
42
47
  /**
43
48
  * Listen to any incoming signals for a particular topic or private channel
44
49
  */
@@ -14,6 +14,7 @@ var SignalType;
14
14
  SignalType["COMMAND"] = "COMMAND";
15
15
  SignalType["COMMAND_ACK"] = "COMMAND_ACK";
16
16
  SignalType["TELEMETRY"] = "TELEMETRY";
17
+ SignalType["MIRROR"] = "MIRROR";
17
18
  // General Acknowledgements
18
19
  SignalType["ACK"] = "ACK";
19
20
  })(SignalType || (exports.SignalType = SignalType = {}));
@@ -109,6 +110,12 @@ class UniversalSignaling {
109
110
  this.rt.privatePub(to, payload);
110
111
  }
111
112
  }
113
+ /**
114
+ * Mirror a URL to a specific device's pane
115
+ */
116
+ async mirror(from, to, url, options = {}) {
117
+ return this.sendRaw(to, SignalType.MIRROR, { url, ...options }, from);
118
+ }
112
119
  /**
113
120
  * Listen to any incoming signals for a particular topic or private channel
114
121
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../signaling/index.ts"],"names":[],"mappings":";;;AAwJA,0CAEC;AAxJD,IAAY,UAeX;AAfD,WAAY,UAAU;IACpB,sBAAsB;IACtB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,yBAAW,CAAA;IACX,6CAA+B,CAAA;IAE/B,wBAAwB;IACxB,iCAAmB,CAAA;IACnB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IAEvB,2BAA2B;IAC3B,yBAAW,CAAA;AACb,CAAC,EAfW,UAAU,0BAAV,UAAU,QAerB;AAaD,MAAa,kBAAkB;IACrB,EAAE,CAAe;IACjB,WAAW,GAAG,IAAI,GAAG,EAAoE,CAAC;IAElG,YAAY,EAAgB;QAC1B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,IAAY,EAAE,IAAS,EAAE,IAAY,EAAE,aAAsB,KAAK,EAAE,YAAoB,IAAI;QAC5H,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,OAAO,GAAqB;YAChC,KAAK;YACL,IAAI;YACJ,EAAE;YACF,IAAI;YACJ,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,EAAE,SAAS,CAAC,CAAC;gBAEd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEhD,wCAAwC;gBACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,KAAa;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,UAAkB;QACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE;YACrB,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACxE,IAAI,EAAE,UAAU,CAAC,GAAG;YACpB,IAAI;YACJ,EAAE;YACF,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IAE5B,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,EAAU,EAAE,IAAU;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,EAAU,EAAE,GAAS;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,EAAU,EAAE,MAAe;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,MAAe;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,EAAU,EAAE,SAAc;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,+CAA+C;IAExC,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,EAAU,EAAE,WAAgB,EAAE,aAAsB,IAAI;QAC7F,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,EAAkB,EAAE,aAAkB;QAC7E,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACxE,IAAI;YACJ,EAAE;YACF,IAAI,EAAE,UAAU,CAAC,SAAS;YAC1B,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAgB,EAAE,OAAsB;QACzD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,mBAAmB,QAAQ,EAAE,EAAE,CAAC,OAAY,EAAE,EAAE;YAChE,oCAAoC;YACpC,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC3D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,OAA2B,CAAC,CAAC;QACvC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;CACF;AAxHD,gDAwHC;AAED,SAAgB,eAAe,CAAC,EAAgB;IAC9C,OAAO,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../signaling/index.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.6.1",
3
+ "version": "1.7.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",
@@ -10,7 +10,8 @@
10
10
  "README.md",
11
11
  "LICENSE",
12
12
  "TUTORIAL_NEPALI.md",
13
- "DOLPHIN_MASTER_GUIDE_NEPALI.md"
13
+ "DOLPHIN_MASTER_GUIDE_NEPALI.md",
14
+ "scripts/client.js"
14
15
  ],
15
16
  "exports": {
16
17
  ".": "./dist/index.js",
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Dolphin Client v1.1 - Full-stack Realtime, API & Auth Client
3
+ * Zero-dependency, pure JS.
4
+ *
5
+ * यो लाइब्रेरी डल्फिन सर्भरबाट सिधै उपलब्ध हुने पब-सब, API र Auth लाइब्रेरी हो।
6
+ */
7
+
8
+ class APIHandler {
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+
13
+ async request(method, path, body = null, options = {}) {
14
+ const url = `${this.client.httpUrl}${path.startsWith('/') ? path : '/' + path}`;
15
+ const headers = {
16
+ 'Content-Type': 'application/json',
17
+ ...options.headers
18
+ };
19
+
20
+ // अटोमेटिक टोकन इन्जेक्सन
21
+ if (this.client.accessToken) {
22
+ headers['Authorization'] = `Bearer ${this.client.accessToken}`;
23
+ }
24
+
25
+ const fetchOptions = {
26
+ method,
27
+ headers,
28
+ ...options
29
+ };
30
+
31
+ if (body) {
32
+ fetchOptions.body = JSON.stringify(body);
33
+ }
34
+
35
+ const response = await fetch(url, fetchOptions);
36
+
37
+ // JSON वा Text ह्यान्डल गर्ने
38
+ const contentType = response.headers.get('content-type');
39
+ let data;
40
+ if (contentType && contentType.includes('application/json')) {
41
+ data = await response.json();
42
+ } else {
43
+ data = await response.text();
44
+ }
45
+
46
+ if (!response.ok) {
47
+ throw { status: response.status, data };
48
+ }
49
+
50
+ return data;
51
+ }
52
+
53
+ get(path, options) { return this.request('GET', path, null, options); }
54
+ post(path, body, options) { return this.request('POST', path, body, options); }
55
+ put(path, body, options) { return this.request('PUT', path, body, options); }
56
+ del(path, options) { return this.request('DELETE', path, null, options); }
57
+ }
58
+
59
+ class AuthHandler {
60
+ constructor(client) {
61
+ this.client = client;
62
+ this.user = null;
63
+ }
64
+
65
+ async login(email, password) {
66
+ const res = await this.client.api.post('/auth/login', { email, password });
67
+ if (res.accessToken) {
68
+ this.client.setToken(res.accessToken);
69
+ this.user = res.user;
70
+ }
71
+ return res;
72
+ }
73
+
74
+ async register(data) {
75
+ return await this.client.api.post('/auth/register', data);
76
+ }
77
+
78
+ async me() {
79
+ const res = await this.client.api.get('/auth/me');
80
+ if (res.success) {
81
+ this.user = res.data;
82
+ }
83
+ return res;
84
+ }
85
+
86
+ async logout() {
87
+ await this.client.api.post('/auth/logout');
88
+ this.client.setToken(null);
89
+ this.user = null;
90
+ }
91
+
92
+ async forgotPassword(email) {
93
+ return await this.client.api.post('/auth/forgot-password', { email });
94
+ }
95
+ }
96
+
97
+ class DolphinClient {
98
+ constructor(url = window.location.host, deviceId = 'web_' + Math.random().toString(36).substr(2, 5)) {
99
+ // Handle URL formatting
100
+ this.host = url.replace(/\/$/, "").replace(/^https?:\/\//, "");
101
+ this.httpUrl = `${window.location.protocol}//${this.host}`;
102
+ this.deviceId = deviceId;
103
+
104
+ this.socket = null;
105
+ this.accessToken = localStorage.getItem('dolphin_token');
106
+
107
+ // Sub-handlers
108
+ this.api = new APIHandler(this);
109
+ this.auth = new AuthHandler(this);
110
+
111
+ this.handlers = new Map(); // topic -> Set of callbacks
112
+ this.signalHandlers = new Set();
113
+ this.reconnectAttempts = 0;
114
+ this.maxReconnectAttempts = 5;
115
+ }
116
+
117
+ /**
118
+ * टोकन सेट गर्ने र सेभ गर्ने
119
+ */
120
+ setToken(token) {
121
+ this.accessToken = token;
122
+ if (token) {
123
+ localStorage.setItem('dolphin_token', token);
124
+ } else {
125
+ localStorage.removeItem('dolphin_token');
126
+ }
127
+ }
128
+
129
+ /**
130
+ * रियल-टाइम सर्भरसँग कनेक्शन सुरु गर्ने
131
+ */
132
+ async connect() {
133
+ return new Promise((resolve, reject) => {
134
+ const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
135
+ const wsUrl = `${protocol}//${this.host}/realtime?deviceId=${this.deviceId}`;
136
+
137
+ console.log(`[Dolphin] Connecting to ${wsUrl}...`);
138
+ this.socket = new WebSocket(wsUrl);
139
+
140
+ this.socket.onopen = () => {
141
+ console.log(`[Dolphin] Connected as "${this.deviceId}" 🐬`);
142
+ this.reconnectAttempts = 0;
143
+ resolve();
144
+ };
145
+
146
+ this.socket.onmessage = (event) => {
147
+ this._handleMessage(event.data);
148
+ };
149
+
150
+ this.socket.onclose = () => {
151
+ console.warn("[Dolphin] Connection closed");
152
+ this._maybeReconnect();
153
+ };
154
+
155
+ this.socket.onerror = (err) => {
156
+ console.error("[Dolphin] WebSocket Error:", err);
157
+ reject(err);
158
+ };
159
+ });
160
+ }
161
+
162
+ _handleMessage(data) {
163
+ try {
164
+ const parsed = JSON.parse(data);
165
+
166
+ // १. Signaling Messages
167
+ if (parsed.type && parsed.from && (parsed.to === this.deviceId || parsed.to === 'all')) {
168
+ this.signalHandlers.forEach(handler => handler(parsed));
169
+ }
170
+
171
+ // २. Pub/Sub Messages
172
+ if (parsed.topic && parsed.payload !== undefined) {
173
+ const topic = parsed.topic;
174
+ this.handlers.forEach((callbacks, pattern) => {
175
+ if (this._matchTopic(pattern, topic)) {
176
+ callbacks.forEach(cb => cb(parsed.payload, topic));
177
+ }
178
+ });
179
+ }
180
+ } catch (e) {
181
+ this.handlers.forEach((callbacks, pattern) => {
182
+ if (pattern === 'raw') callbacks.forEach(cb => cb(data));
183
+ });
184
+ }
185
+ }
186
+
187
+ _matchTopic(pattern, topic) {
188
+ if (pattern === topic || pattern === '#') return true;
189
+ const pParts = pattern.split('/');
190
+ const tParts = topic.split('/');
191
+ if (pParts.length !== tParts.length && !pattern.includes('#')) return false;
192
+ for (let i = 0; i < pParts.length; i++) {
193
+ if (pParts[i] === '#') return true;
194
+ if (pParts[i] !== '+' && pParts[i] !== tParts[i]) return false;
195
+ }
196
+ return pParts.length === tParts.length;
197
+ }
198
+
199
+ subscribe(topic, callback) {
200
+ if (!this.handlers.has(topic)) this.handlers.set(topic, new Set());
201
+ this.handlers.get(topic).add(callback);
202
+ }
203
+
204
+ publish(topic, payload) {
205
+ if (this.socket && this.socket.readyState === WebSocket.OPEN) {
206
+ this.socket.send(JSON.stringify({ topic, payload }));
207
+ }
208
+ }
209
+
210
+ onSignal(handler) {
211
+ this.signalHandlers.add(handler);
212
+ }
213
+
214
+ _maybeReconnect() {
215
+ if (this.reconnectAttempts < this.maxReconnectAttempts) {
216
+ this.reconnectAttempts++;
217
+ const delay = Math.pow(2, this.reconnectAttempts) * 1000;
218
+ setTimeout(() => this.connect(), delay);
219
+ }
220
+ }
221
+ }
222
+
223
+ // विन्डो ग्लोबलमा उपलब्ध गराउने
224
+ window.DolphinClient = DolphinClient;
225
+ // अटो-इनिशियलाइज (Optional)
226
+ window.dolphin = new DolphinClient();