dolphin-server-modules 1.5.7 → 1.6.1
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/DOLPHIN_MASTER_GUIDE_NEPALI.md +112 -1
- package/README.md +1 -0
- package/TUTORIAL_NEPALI.md +14 -1
- package/dist/curd/crud.d.ts +5 -1
- package/dist/curd/crud.js +2 -2
- package/dist/curd/crud.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/signaling/index.d.ts +47 -0
- package/dist/signaling/index.js +129 -0
- package/dist/signaling/index.js.map +1 -0
- package/package.json +3 -2
|
@@ -834,7 +834,118 @@ rt.privateSub(deviceId, fn) प्राइभेट सब्सक्राइ
|
|
|
834
834
|
rt.privatePub(targetId, payload, opts?) प्राइभेट पब्लिस
|
|
835
835
|
rt.getStats() स्ट्याटिस्टिक्स
|
|
836
836
|
rt.destroy() क्लिनअप
|
|
837
|
-
|
|
837
|
+
१७. Universal Signaling (WebRTC & IoT)
|
|
838
|
+
Dolphin v1.6.0 बाट शून्य डिपेन्डेन्सी सहितको Universal Signaling Module आएको छ, जसले WebRTC र IoT Control लाई एउटै API मा ह्यान्डल गर्छ।
|
|
839
|
+
|
|
840
|
+
typescript
|
|
841
|
+
import { createSignaling } from 'dolphin-server-modules/signaling';
|
|
842
|
+
import { RealtimeCore } from 'dolphin-server-modules/realtime';
|
|
843
|
+
|
|
844
|
+
const rt = new RealtimeCore();
|
|
845
|
+
const signaling = createSignaling(rt);
|
|
846
|
+
|
|
847
|
+
// 1. WebRTC Call (For Phones/Apps)
|
|
848
|
+
await signaling.invite('user1', 'user2', { sdp: 'offer_data' });
|
|
849
|
+
|
|
850
|
+
// 2. IoT / Medical Command
|
|
851
|
+
await signaling.sendCommand('DoctorApp', 'Machine_01', { action: 'START' });
|
|
852
|
+
|
|
853
|
+
१८. Folder Structure र Architecture बेस्ट प्राक्टिस (Zero to Scale)
|
|
854
|
+
एउटा ठूलो सङ्गठन वा IoT एप्लिकेसन डिजाइन गर्दा प्रोजेक्टलाई एउटै फाइलमा नराखी व्यवस्थित तरिकाले यसरी मिलाउनुपर्छ:
|
|
855
|
+
|
|
856
|
+
```text
|
|
857
|
+
my-dolphin-app/
|
|
858
|
+
├── src/
|
|
859
|
+
│ ├── config/ # Database, Redis जस्ता कन्फिगरेसन
|
|
860
|
+
│ ├── models/ # Mongoose/DB स्किमाहरू (Product.ts, SensorData.ts)
|
|
861
|
+
│ ├── controllers/ # लजिक र CRUD ह्यान्डलर (UserCtrl.ts, IoT_Ctrl.ts)
|
|
862
|
+
│ ├── middlewares/ # ZodValidation, AuthGuard, ErrorHandler
|
|
863
|
+
│ ├── routes/ # apiRouter (Independent Routing)
|
|
864
|
+
│ ├── realtime/ # IoT र WebSocket का इभेन्ट-ह्यान्डलर (pub/sub)
|
|
865
|
+
│ ├── app.ts # Dolphin Server र WebSockets (wss) को सेटअप
|
|
866
|
+
│ └── index.ts # सर्भर सुरु गर्ने (app.listen)
|
|
867
|
+
├── package.json
|
|
868
|
+
└── tsconfig.json
|
|
869
|
+
```
|
|
870
|
+
यो तरिका अपनाउँदा तपाइँको REST API र IoT को RealtimeCore कहिल्यै पनि नराम्रोसँग जेलिँदैन (Tight Coupling हुँदैन)।
|
|
871
|
+
|
|
872
|
+
१९. Global Error Handling (सर्भर क्र्यास हुनबाट बचाउने)
|
|
873
|
+
Dolphin मा तपाईंले लेखेको कुनै कस्टम लजिकले Error फाले पनि सर्भर क्र्यास हुनुहुँदैन। यसको लागि ग्लोबल मिडलवेयर (Global Middleware) प्रयोग गर्नुपर्छ:
|
|
874
|
+
|
|
875
|
+
```typescript
|
|
876
|
+
app.use(async (ctx, next) => {
|
|
877
|
+
try {
|
|
878
|
+
if (next) await next();
|
|
879
|
+
} catch (error) {
|
|
880
|
+
console.error("🔥 SYSTEM ERROR:", error.message);
|
|
881
|
+
// क्लाईन्टलाई नराम्रो HTML को सट्टा राम्रो JSON पठाउने
|
|
882
|
+
ctx.status(500).json({
|
|
883
|
+
success: false,
|
|
884
|
+
message: "Internal Server Error",
|
|
885
|
+
error: process.env.NODE_ENV !== 'production' ? error.stack : undefined
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
});
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
२०. Frontend सँग जोड्ने (React & IoT WebSockets)
|
|
892
|
+
फ्रन्टइन्ड (Frontend) बाट Dolphin API लाई कल गर्न तपाईंले सुरुमा CORS अन गर्नुपर्छ।
|
|
893
|
+
|
|
894
|
+
CORS Setup:
|
|
895
|
+
```typescript
|
|
896
|
+
import cors from 'cors';
|
|
897
|
+
app.use(cors({ origin: 'http://localhost:3000', credentials: true }));
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
React बाट IoT WebSocket जोड्ने:
|
|
901
|
+
```javascript
|
|
902
|
+
import { useEffect, useState } from 'react';
|
|
903
|
+
|
|
904
|
+
function Dashboard() {
|
|
905
|
+
const [temp, setTemp] = useState(0);
|
|
906
|
+
|
|
907
|
+
useEffect(() => {
|
|
908
|
+
// 1. Dolphin को WebSocket मा कनेक्ट गर्ने
|
|
909
|
+
const ws = new WebSocket('ws://localhost:8080?id=React_Dashboard&type=monitor');
|
|
910
|
+
|
|
911
|
+
ws.onmessage = (event) => {
|
|
912
|
+
const parsed = JSON.parse(event.data);
|
|
913
|
+
if(parsed.topic === 'sensors/temperature') {
|
|
914
|
+
setTemp(parsed.payload.value);
|
|
915
|
+
}
|
|
916
|
+
};
|
|
917
|
+
|
|
918
|
+
// 2. Dolphin लाई कुन टपिक सुन्ने भनेर Subscribe मेसेज पठाउने
|
|
919
|
+
ws.onopen = () => {
|
|
920
|
+
ws.send(JSON.stringify({ action: 'subscribe', topic: 'sensors/temperature' }));
|
|
921
|
+
};
|
|
922
|
+
|
|
923
|
+
return () => ws.close();
|
|
924
|
+
}, []);
|
|
925
|
+
|
|
926
|
+
return <div><h1>लाइभ तापक्रम: {temp} °C 🌡️</h1></div>;
|
|
927
|
+
}
|
|
928
|
+
```
|
|
929
|
+
|
|
930
|
+
२१. Production Deployment (सर्भर लाइभ गर्ने)
|
|
931
|
+
तपाईँको Dolphin सर्भर रकेट जस्तै तयार छ। अब यसलाई लाइभ (World Wide Web) मा राख्न PM2 प्रयोग गरिन्छ जसले क्र्यास भएको खण्डमा तुरुन्त (0.1ms) सर्भरलाई अटो-रिस्टार्ट (Auto-Restart) गर्छ।
|
|
932
|
+
|
|
933
|
+
PM2 इन्स्टल र सुरु गर्न:
|
|
934
|
+
```bash
|
|
935
|
+
# 1. PM2 लाई Global रूपमा राख्ने
|
|
936
|
+
npm install -g pm2
|
|
937
|
+
|
|
938
|
+
# 2. तपाईंको Code लाई Build गर्ने
|
|
939
|
+
npm run build
|
|
940
|
+
|
|
941
|
+
# 3. PM2 द्वारा Background मा सर्भर सुरु गर्ने
|
|
942
|
+
pm2 start dist/index.js --name "dolphin-iot-backend"
|
|
943
|
+
|
|
944
|
+
# 4. सर्भरका Logs (Error/Info) हेर्न
|
|
945
|
+
pm2 logs dolphin-iot-backend
|
|
946
|
+
```
|
|
947
|
+
|
|
948
|
+
२२. निष्कर्ष (Conclusion)
|
|
838
949
|
बधाई छ! तपाईँले Dolphin Framework v2.0 को Master Guide पूरा गर्नुभयो। अब तपाईँ:
|
|
839
950
|
|
|
840
951
|
✅ हाई-पर्फर्मेन्स API सर्भर बनाउन
|
package/README.md
CHANGED
|
@@ -115,6 +115,7 @@ rt.subscribe('factory/machine/+', (data) => {
|
|
|
115
115
|
| **Validation** | `/middleware/zod` | Type-safe Zod validation middleware. |
|
|
116
116
|
| **Swagger Docs** | `/swagger` | Auto-generated OpenAPI docs from Zod schemas. |
|
|
117
117
|
| **IoT Plugins** | `/realtime/plugins` | Native parsers for HL7, Modbus, and DICOM. |
|
|
118
|
+
| **Signaling** | `/signaling` | Universal WebRTC & Control Signaling module. |
|
|
118
119
|
| **Mongoose Adapter** | `/adapters/mongoose` | Full Mongoose ↔ CRUD bridge with query mapping. |
|
|
119
120
|
|
|
120
121
|
---
|
package/TUTORIAL_NEPALI.md
CHANGED
|
@@ -216,7 +216,20 @@ app.use('/api', apiRouter); // Route अब /api/ping मा उपलब्ध
|
|
|
216
216
|
|
|
217
217
|
---
|
|
218
218
|
|
|
219
|
-
## १३.
|
|
219
|
+
## १३. Universal Signaling (WebRTC & IoT) [NEW]
|
|
220
|
+
Dolphin v1.6.0 बाट नयाँ "Universal Signaling Module" थपिएको छ जसमा फोन, IoT र मेडिकल डिभाइस कन्ट्रोल गर्न सकिन्छ।
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
import { createSignaling } from 'dolphin-server-modules/signaling';
|
|
224
|
+
const signaling = createSignaling(rt);
|
|
225
|
+
|
|
226
|
+
// IoT कमाण्ड पठाउन
|
|
227
|
+
await signaling.sendCommand('DoctorApp', 'Machine_01', { action: 'START' });
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## १४. अन्तिममा (Conclusion)
|
|
220
233
|
|
|
221
234
|
Dolphin Framework निकै छिटो र सजिलो छ। यसले तपाईँको ब्याकइन्ड डेभलपमेन्टको अनुभवलाई नयाँ उचाइमा पुर्याउँछ।
|
|
222
235
|
|
package/dist/curd/crud.d.ts
CHANGED
|
@@ -46,7 +46,11 @@ export declare function createCRUD<T extends BaseDocument = BaseDocument>(db: Da
|
|
|
46
46
|
hasPrev: boolean;
|
|
47
47
|
}>;
|
|
48
48
|
};
|
|
49
|
-
export declare function createCrudController<T extends BaseDocument = BaseDocument>(adapter: any, collection: string
|
|
49
|
+
export declare function createCrudController<T extends BaseDocument = BaseDocument>(adapter: any, collection: string, options?: {
|
|
50
|
+
enforceOwnership?: boolean;
|
|
51
|
+
softDelete?: boolean;
|
|
52
|
+
defaultLimit?: number;
|
|
53
|
+
}): {
|
|
50
54
|
getAll: (ctx: any) => Promise<void>;
|
|
51
55
|
getOne: (ctx: any) => Promise<any>;
|
|
52
56
|
create: (ctx: any) => Promise<void>;
|
package/dist/curd/crud.js
CHANGED
|
@@ -237,8 +237,8 @@ function createCRUD(db, options = {}) {
|
|
|
237
237
|
}
|
|
238
238
|
};
|
|
239
239
|
}
|
|
240
|
-
function createCrudController(adapter, collection) {
|
|
241
|
-
const service = createCRUD(adapter);
|
|
240
|
+
function createCrudController(adapter, collection, options) {
|
|
241
|
+
const service = createCRUD(adapter, options);
|
|
242
242
|
return {
|
|
243
243
|
getAll: async (ctx) => {
|
|
244
244
|
const { limit, offset, ...filters } = ctx.query;
|
package/dist/curd/crud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../curd/crud.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../curd/crud.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./realtime/codec"), exports);
|
|
18
18
|
__exportStar(require("./realtime/index"), exports);
|
|
19
19
|
__exportStar(require("./swagger/swagger"), exports);
|
|
20
|
+
__exportStar(require("./signaling/index"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC;AAClC,oDAAkC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { RealtimeCore } from '../realtime/core';
|
|
2
|
+
export declare enum SignalType {
|
|
3
|
+
INVITE = "INVITE",
|
|
4
|
+
ACCEPT = "ACCEPT",
|
|
5
|
+
REJECT = "REJECT",
|
|
6
|
+
END = "END",
|
|
7
|
+
ICE_CANDIDATE = "ICE_CANDIDATE",
|
|
8
|
+
COMMAND = "COMMAND",
|
|
9
|
+
COMMAND_ACK = "COMMAND_ACK",
|
|
10
|
+
TELEMETRY = "TELEMETRY",
|
|
11
|
+
ACK = "ACK"
|
|
12
|
+
}
|
|
13
|
+
export interface SignalingPayload {
|
|
14
|
+
msgId: string;
|
|
15
|
+
from: string;
|
|
16
|
+
to: string;
|
|
17
|
+
type: SignalType | string;
|
|
18
|
+
data?: any;
|
|
19
|
+
timestamp: number;
|
|
20
|
+
}
|
|
21
|
+
export type SignalHandler = (payload: SignalingPayload) => void;
|
|
22
|
+
export declare class UniversalSignaling {
|
|
23
|
+
private rt;
|
|
24
|
+
private pendingAcks;
|
|
25
|
+
constructor(rt: RealtimeCore);
|
|
26
|
+
/**
|
|
27
|
+
* Internal mechanism to send a signal directly to the device.
|
|
28
|
+
*/
|
|
29
|
+
private sendRaw;
|
|
30
|
+
/**
|
|
31
|
+
* Used to acknowledge a signal natively
|
|
32
|
+
*/
|
|
33
|
+
handleAck(msgId: string): void;
|
|
34
|
+
ack(from: string, to: string, msgIdToAck: string): void;
|
|
35
|
+
invite(from: string, to: string, data?: any): Promise<boolean>;
|
|
36
|
+
accept(from: string, to: string, sdp?: any): Promise<boolean>;
|
|
37
|
+
reject(from: string, to: string, reason?: string): Promise<boolean>;
|
|
38
|
+
end(from: string, to: string, reason?: string): Promise<boolean>;
|
|
39
|
+
iceCandidate(from: string, to: string, candidate: any): Promise<boolean>;
|
|
40
|
+
sendCommand(from: string, to: string, commandData: any, requireAck?: boolean): Promise<boolean>;
|
|
41
|
+
sendTelemetry(from: string, to: string | 'all', telemetryData: any): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Listen to any incoming signals for a particular topic or private channel
|
|
44
|
+
*/
|
|
45
|
+
onSignalFor(deviceId: string, handler: SignalHandler): void;
|
|
46
|
+
}
|
|
47
|
+
export declare function createSignaling(rt: RealtimeCore): UniversalSignaling;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UniversalSignaling = exports.SignalType = void 0;
|
|
4
|
+
exports.createSignaling = createSignaling;
|
|
5
|
+
var SignalType;
|
|
6
|
+
(function (SignalType) {
|
|
7
|
+
// Connection / WebRTC
|
|
8
|
+
SignalType["INVITE"] = "INVITE";
|
|
9
|
+
SignalType["ACCEPT"] = "ACCEPT";
|
|
10
|
+
SignalType["REJECT"] = "REJECT";
|
|
11
|
+
SignalType["END"] = "END";
|
|
12
|
+
SignalType["ICE_CANDIDATE"] = "ICE_CANDIDATE";
|
|
13
|
+
// Custom Data / Control
|
|
14
|
+
SignalType["COMMAND"] = "COMMAND";
|
|
15
|
+
SignalType["COMMAND_ACK"] = "COMMAND_ACK";
|
|
16
|
+
SignalType["TELEMETRY"] = "TELEMETRY";
|
|
17
|
+
// General Acknowledgements
|
|
18
|
+
SignalType["ACK"] = "ACK";
|
|
19
|
+
})(SignalType || (exports.SignalType = SignalType = {}));
|
|
20
|
+
class UniversalSignaling {
|
|
21
|
+
rt;
|
|
22
|
+
pendingAcks = new Map();
|
|
23
|
+
constructor(rt) {
|
|
24
|
+
this.rt = rt;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Internal mechanism to send a signal directly to the device.
|
|
28
|
+
*/
|
|
29
|
+
async sendRaw(to, type, data, from, requireAck = false, timeoutMs = 3000) {
|
|
30
|
+
const msgId = `sig_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
31
|
+
const payload = {
|
|
32
|
+
msgId,
|
|
33
|
+
from,
|
|
34
|
+
to,
|
|
35
|
+
type,
|
|
36
|
+
data,
|
|
37
|
+
timestamp: Date.now()
|
|
38
|
+
};
|
|
39
|
+
if (requireAck) {
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
const timer = setTimeout(() => {
|
|
42
|
+
this.pendingAcks.delete(msgId);
|
|
43
|
+
resolve(false);
|
|
44
|
+
}, timeoutMs);
|
|
45
|
+
this.pendingAcks.set(msgId, { resolve, timer });
|
|
46
|
+
// Use RealtimeCore's privatePub channel
|
|
47
|
+
this.rt.privatePub(to, payload);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.rt.privatePub(to, payload);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Used to acknowledge a signal natively
|
|
57
|
+
*/
|
|
58
|
+
handleAck(msgId) {
|
|
59
|
+
const pending = this.pendingAcks.get(msgId);
|
|
60
|
+
if (pending) {
|
|
61
|
+
clearTimeout(pending.timer);
|
|
62
|
+
pending.resolve(true);
|
|
63
|
+
this.pendingAcks.delete(msgId);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
ack(from, to, msgIdToAck) {
|
|
67
|
+
this.rt.privatePub(to, {
|
|
68
|
+
msgId: `sig_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
|
|
69
|
+
type: SignalType.ACK,
|
|
70
|
+
from,
|
|
71
|
+
to,
|
|
72
|
+
data: { ackId: msgIdToAck },
|
|
73
|
+
timestamp: Date.now()
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
// --- WebRTC / Session Methods ---
|
|
77
|
+
async invite(from, to, data) {
|
|
78
|
+
return this.sendRaw(to, SignalType.INVITE, data, from, true);
|
|
79
|
+
}
|
|
80
|
+
async accept(from, to, sdp) {
|
|
81
|
+
return this.sendRaw(to, SignalType.ACCEPT, sdp, from);
|
|
82
|
+
}
|
|
83
|
+
async reject(from, to, reason) {
|
|
84
|
+
return this.sendRaw(to, SignalType.REJECT, { reason }, from);
|
|
85
|
+
}
|
|
86
|
+
async end(from, to, reason) {
|
|
87
|
+
return this.sendRaw(to, SignalType.END, { reason }, from);
|
|
88
|
+
}
|
|
89
|
+
async iceCandidate(from, to, candidate) {
|
|
90
|
+
return this.sendRaw(to, SignalType.ICE_CANDIDATE, candidate, from);
|
|
91
|
+
}
|
|
92
|
+
// --- Industrial / Medical Control Methods ---
|
|
93
|
+
async sendCommand(from, to, commandData, requireAck = true) {
|
|
94
|
+
return this.sendRaw(to, SignalType.COMMAND, commandData, from, requireAck);
|
|
95
|
+
}
|
|
96
|
+
async sendTelemetry(from, to, telemetryData) {
|
|
97
|
+
const payload = {
|
|
98
|
+
msgId: `tel_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
|
|
99
|
+
from,
|
|
100
|
+
to,
|
|
101
|
+
type: SignalType.TELEMETRY,
|
|
102
|
+
data: telemetryData,
|
|
103
|
+
timestamp: Date.now()
|
|
104
|
+
};
|
|
105
|
+
if (to === 'all') {
|
|
106
|
+
this.rt.publish(`telemetry/broadcast`, payload);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.rt.privatePub(to, payload);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Listen to any incoming signals for a particular topic or private channel
|
|
114
|
+
*/
|
|
115
|
+
onSignalFor(deviceId, handler) {
|
|
116
|
+
this.rt.subscribe(`phone/signaling/${deviceId}`, (payload) => {
|
|
117
|
+
// Auto-handle native ACK processing
|
|
118
|
+
if (payload.type === SignalType.ACK && payload.data?.ackId) {
|
|
119
|
+
this.handleAck(payload.data.ackId);
|
|
120
|
+
}
|
|
121
|
+
handler(payload);
|
|
122
|
+
}, deviceId);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.UniversalSignaling = UniversalSignaling;
|
|
126
|
+
function createSignaling(rt) {
|
|
127
|
+
return new UniversalSignaling(rt);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dolphin-server-modules",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
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",
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"./realtime/codec": "./dist/realtime/codec.js",
|
|
30
30
|
"./realtime/plugins": "./dist/realtime/plugins.js",
|
|
31
31
|
"./swagger": "./dist/swagger/swagger.js",
|
|
32
|
-
"./djson": "./dist/djson/djson.js"
|
|
32
|
+
"./djson": "./dist/djson/djson.js",
|
|
33
|
+
"./signaling": "./dist/signaling/index.js"
|
|
33
34
|
},
|
|
34
35
|
"scripts": {
|
|
35
36
|
"build": "tsc",
|