dolphin-server-modules 1.5.1 → 1.5.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 (47) hide show
  1. package/DOLPHIN_MASTER_GUIDE_NEPALI.md +369 -478
  2. package/dist/adapters/mongoose/index.test.d.ts +1 -0
  3. package/dist/adapters/mongoose/index.test.js +103 -0
  4. package/dist/adapters/mongoose/index.test.js.map +1 -0
  5. package/dist/auth/auth.test.d.ts +1 -0
  6. package/dist/auth/auth.test.js +291 -0
  7. package/dist/auth/auth.test.js.map +1 -0
  8. package/dist/authController/authController.test.d.ts +1 -0
  9. package/dist/authController/authController.test.js +361 -0
  10. package/dist/authController/authController.test.js.map +1 -0
  11. package/dist/controller/controller.test.d.ts +1 -0
  12. package/dist/controller/controller.test.js +39 -0
  13. package/dist/controller/controller.test.js.map +1 -0
  14. package/dist/curd/crud.d.ts +2 -0
  15. package/dist/curd/crud.js +83 -24
  16. package/dist/curd/crud.js.map +1 -1
  17. package/dist/curd/crud.test.d.ts +1 -0
  18. package/dist/curd/crud.test.js +163 -0
  19. package/dist/curd/crud.test.js.map +1 -0
  20. package/dist/djson/djson.d.ts +42 -0
  21. package/dist/djson/djson.js +318 -0
  22. package/dist/djson/djson.js.map +1 -0
  23. package/dist/index.d.ts +1 -5
  24. package/dist/index.js +1 -12
  25. package/dist/index.js.map +1 -1
  26. package/dist/middleware/zod.test.d.ts +1 -0
  27. package/dist/middleware/zod.test.js +76 -0
  28. package/dist/middleware/zod.test.js.map +1 -0
  29. package/dist/realtime/core.d.ts +27 -28
  30. package/dist/realtime/core.js +297 -65
  31. package/dist/realtime/core.js.map +1 -1
  32. package/dist/realtime/index.d.ts +1 -1
  33. package/dist/realtime/index.js +1 -1
  34. package/dist/realtime/index.js.map +1 -1
  35. package/dist/realtime/plugins.d.ts +17 -4
  36. package/dist/realtime/plugins.js +300 -14
  37. package/dist/realtime/plugins.js.map +1 -1
  38. package/dist/realtime/realtime.test.d.ts +1 -0
  39. package/dist/realtime/realtime.test.js +271 -0
  40. package/dist/realtime/realtime.test.js.map +1 -0
  41. package/package.json +4 -2
  42. package/dist/router/router.d.ts +0 -26
  43. package/dist/router/router.js +0 -71
  44. package/dist/router/router.js.map +0 -1
  45. package/dist/server/server.d.ts +0 -23
  46. package/dist/server/server.js +0 -219
  47. package/dist/server/server.js.map +0 -1
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toBase64 = exports.toHex = exports.toKeyValue = exports.toQueryString = exports.toBuffer = exports.dencode = exports.djsonSafe = exports.djson = exports.DJSON = void 0;
4
+ class DJSON {
5
+ static opts = {
6
+ autoDetect: true,
7
+ strict: false,
8
+ };
9
+ static configure(o) {
10
+ this.opts = { ...this.opts, ...o };
11
+ }
12
+ static parse(data, format) {
13
+ const r = this.parseSafe(data, format);
14
+ if (!r.success) {
15
+ if (this.opts.strict) {
16
+ throw new Error(r.error || 'DJSON parse failed');
17
+ }
18
+ return { error: r.error || 'Parse failed', raw: data };
19
+ }
20
+ return r.data;
21
+ }
22
+ static parseSafe(data, format) {
23
+ const ts = Date.now();
24
+ try {
25
+ if (data == null) {
26
+ return { success: true, data: null, format: 'plain', timestamp: ts };
27
+ }
28
+ if (typeof data === 'object' && !Buffer.isBuffer(data) && data !== null) {
29
+ return { success: true, data, format: 'json', timestamp: ts };
30
+ }
31
+ let str = '';
32
+ if (Buffer.isBuffer(data)) {
33
+ str = data.toString('utf8');
34
+ }
35
+ else if (typeof data === 'string') {
36
+ str = data;
37
+ }
38
+ else {
39
+ str = String(data);
40
+ }
41
+ // Very long string as plain
42
+ if (str.length > 1000 && !format) {
43
+ return { success: true, data: { raw: str }, format: 'plain', timestamp: ts };
44
+ }
45
+ if (format) {
46
+ return this.parseWithFormat(str, format, ts);
47
+ }
48
+ if (this.opts.autoDetect) {
49
+ return this.autoDetect(str, data, ts);
50
+ }
51
+ return { success: true, data: { raw: str }, format: 'plain', timestamp: ts };
52
+ }
53
+ catch (e) {
54
+ return { success: false, data: null, error: e.message || 'Parse failed', timestamp: ts };
55
+ }
56
+ }
57
+ static autoDetect(str, originalData, ts) {
58
+ // Handle empty string
59
+ if (str.length === 0) {
60
+ return { success: true, data: { raw: str }, format: 'plain', timestamp: ts };
61
+ }
62
+ // If original data was not a string (boolean, number, etc.), treat as plain
63
+ if (typeof originalData !== 'string' && originalData !== null && originalData !== undefined) {
64
+ return { success: true, data: { raw: str }, format: 'plain', timestamp: ts };
65
+ }
66
+ const trimmed = str.trim();
67
+ // Try JSON first (strict detection)
68
+ const isJsonLike = (trimmed.startsWith('{') && trimmed.endsWith('}')) ||
69
+ (trimmed.startsWith('[') && trimmed.endsWith(']'));
70
+ if (isJsonLike) {
71
+ const r = this.parseJSON(str, ts);
72
+ if (r.success)
73
+ return r;
74
+ return { success: false, data: null, error: 'Invalid JSON', timestamp: ts };
75
+ }
76
+ // Try query string (must have & and =)
77
+ if (str.includes('=') && str.includes('&')) {
78
+ const r = this.parseQS(str, ts);
79
+ if (r.success && Object.keys(r.data).length > 0)
80
+ return r;
81
+ }
82
+ // Try key-value (space separated with =)
83
+ if (str.includes('=') && str.includes(' ') && !str.includes('&')) {
84
+ const r = this.parseKV(str, ts);
85
+ if (r.success && Object.keys(r.data).length > 0)
86
+ return r;
87
+ }
88
+ // Try hex (even length, hex chars only, minimum 2 chars)
89
+ if (/^[0-9a-fA-F]+$/.test(str) && str.length % 2 === 0 && str.length >= 2) {
90
+ const r = this.parseHex(str, ts);
91
+ if (r.success)
92
+ return r;
93
+ }
94
+ // Try base64 (valid base64 chars, length multiple of 4, minimum 4 chars)
95
+ // Exclude common words that look like base64 but aren't
96
+ const commonWords = ['true', 'false', 'null', 'undefined', 'NaN', 'Infinity'];
97
+ if (!commonWords.includes(str.toLowerCase()) &&
98
+ /^[A-Za-z0-9+/=]+$/.test(str) &&
99
+ str.length % 4 === 0 &&
100
+ str.length >= 4) {
101
+ const r = this.parseB64(str, ts);
102
+ if (r.success)
103
+ return r;
104
+ }
105
+ // CRITICAL: If we reach here, the input doesn't match ANY format
106
+ // For 'invalid json', it's not JSON, not QS, not KV, not hex, not base64
107
+ // So it should be considered INVALID input (not plain text)
108
+ return {
109
+ success: false,
110
+ data: null,
111
+ error: 'Unable to detect format. Input does not match JSON, QueryString, KeyValue, Hex, or Base64',
112
+ timestamp: ts
113
+ };
114
+ }
115
+ static parseWithFormat(str, fmt, ts) {
116
+ switch (fmt) {
117
+ case 'json': return this.parseJSON(str, ts);
118
+ case 'querystring': return this.parseQS(str, ts);
119
+ case 'keyvalue': return this.parseKV(str, ts);
120
+ case 'hex': return this.parseHex(str, ts);
121
+ case 'base64': return this.parseB64(str, ts);
122
+ case 'plain':
123
+ return { success: true, data: { raw: str }, format: 'plain', timestamp: ts };
124
+ default:
125
+ return { success: true, data: { raw: str }, format: 'plain', timestamp: ts };
126
+ }
127
+ }
128
+ static parseJSON(str, ts) {
129
+ try {
130
+ return { success: true, data: JSON.parse(str), format: 'json', timestamp: ts };
131
+ }
132
+ catch {
133
+ return { success: false, data: null, error: 'Invalid JSON', timestamp: ts };
134
+ }
135
+ }
136
+ static parseQS(str, ts) {
137
+ try {
138
+ const res = {};
139
+ const pairs = str.split('&');
140
+ let hasValidPairs = false;
141
+ for (const pair of pairs) {
142
+ if (pair.includes('=')) {
143
+ const [k, v = ''] = pair.split('=');
144
+ if (k && k.trim()) {
145
+ hasValidPairs = true;
146
+ res[decodeURIComponent(k.trim())] = this.parseValue(decodeURIComponent(v));
147
+ }
148
+ }
149
+ }
150
+ if (!hasValidPairs || Object.keys(res).length === 0) {
151
+ return { success: false, data: null, error: 'Invalid Query String', timestamp: ts };
152
+ }
153
+ return { success: true, data: res, format: 'querystring', timestamp: ts };
154
+ }
155
+ catch {
156
+ return { success: false, data: null, error: 'Invalid Query String', timestamp: ts };
157
+ }
158
+ }
159
+ static parseKV(str, ts) {
160
+ try {
161
+ const res = {};
162
+ const pairs = str.split(/\s+/);
163
+ let hasValidPairs = false;
164
+ for (const pair of pairs) {
165
+ if (pair.includes('=')) {
166
+ const [k, v = ''] = pair.split('=');
167
+ if (k && k.trim()) {
168
+ hasValidPairs = true;
169
+ res[k.trim()] = this.parseValue(v);
170
+ }
171
+ }
172
+ }
173
+ if (!hasValidPairs || Object.keys(res).length === 0) {
174
+ return { success: false, data: null, error: 'Invalid Key-Value', timestamp: ts };
175
+ }
176
+ return { success: true, data: res, format: 'keyvalue', timestamp: ts };
177
+ }
178
+ catch {
179
+ return { success: false, data: null, error: 'Invalid Key-Value', timestamp: ts };
180
+ }
181
+ }
182
+ static parseHex(str, ts) {
183
+ if (str === '') {
184
+ return {
185
+ success: true,
186
+ data: { _type: 'hex', hex: '', ascii: '', utf8: '', buffer: Buffer.from(''), length: 0 },
187
+ format: 'hex',
188
+ timestamp: ts
189
+ };
190
+ }
191
+ if (!/^[0-9a-fA-F]+$/.test(str) || str.length % 2 !== 0) {
192
+ return { success: false, data: null, error: 'Invalid Hex', timestamp: ts };
193
+ }
194
+ try {
195
+ const buf = Buffer.from(str, 'hex');
196
+ return {
197
+ success: true,
198
+ data: { _type: 'hex', hex: str, ascii: buf.toString('ascii'), utf8: buf.toString('utf8'), buffer: buf, length: buf.length },
199
+ format: 'hex',
200
+ timestamp: ts
201
+ };
202
+ }
203
+ catch {
204
+ return { success: false, data: null, error: 'Invalid Hex', timestamp: ts };
205
+ }
206
+ }
207
+ static parseB64(str, ts) {
208
+ // Skip common English words that happen to be valid base64
209
+ const commonWords = ['true', 'false', 'null', 'undefined', 'NaN', 'Infinity', 'hello', 'world'];
210
+ if (commonWords.includes(str.toLowerCase())) {
211
+ return { success: false, data: null, error: 'Invalid Base64', timestamp: ts };
212
+ }
213
+ if (!/^[A-Za-z0-9+/=]+$/.test(str) || str.length % 4 !== 0) {
214
+ return { success: false, data: null, error: 'Invalid Base64', timestamp: ts };
215
+ }
216
+ try {
217
+ const buf = Buffer.from(str, 'base64');
218
+ // Check if decoded result contains valid UTF-8 text (heuristic)
219
+ const utf8Result = buf.toString('utf8');
220
+ const asciiResult = buf.toString('ascii');
221
+ // If decoded buffer is very short or contains only null bytes, might be invalid
222
+ if (buf.length === 0) {
223
+ return { success: false, data: null, error: 'Invalid Base64', timestamp: ts };
224
+ }
225
+ return {
226
+ success: true,
227
+ data: { _type: 'base64', base64: str, ascii: asciiResult, utf8: utf8Result, buffer: buf, length: buf.length },
228
+ format: 'base64',
229
+ timestamp: ts
230
+ };
231
+ }
232
+ catch (e) {
233
+ return { success: false, data: null, error: 'Invalid Base64', timestamp: ts };
234
+ }
235
+ }
236
+ static parseValue(v) {
237
+ const trimmed = v.trim();
238
+ const low = trimmed.toLowerCase();
239
+ if (low === 'true')
240
+ return true;
241
+ if (low === 'false')
242
+ return false;
243
+ if (low === 'null')
244
+ return null;
245
+ if (/^-?\d+(\.\d+)?$/.test(trimmed))
246
+ return parseFloat(trimmed);
247
+ return trimmed;
248
+ }
249
+ // ==================== Encode ====================
250
+ static encode(data, fmt = 'json') {
251
+ switch (fmt) {
252
+ case 'json': return JSON.stringify(data);
253
+ case 'querystring': return this.toQS(data);
254
+ case 'keyvalue': return this.toKV(data);
255
+ case 'hex': return this.toHex(data);
256
+ case 'base64': return this.toB64(data);
257
+ case 'buffer': return this.toBuffer(data);
258
+ default: return JSON.stringify(data);
259
+ }
260
+ }
261
+ static toQS(data) {
262
+ if (typeof data !== 'object' || data === null)
263
+ return String(data);
264
+ return Object.entries(data)
265
+ .filter(([, v]) => v != null)
266
+ .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)
267
+ .join('&');
268
+ }
269
+ static toKV(data) {
270
+ if (typeof data !== 'object' || data === null)
271
+ return String(data);
272
+ return Object.entries(data)
273
+ .filter(([, v]) => v != null)
274
+ .map(([k, v]) => `${k}=${v}`)
275
+ .join(' ');
276
+ }
277
+ static toHex(data) {
278
+ if (Buffer.isBuffer(data))
279
+ return data.toString('hex');
280
+ if (typeof data === 'string')
281
+ return Buffer.from(data).toString('hex');
282
+ return Buffer.from(JSON.stringify(data)).toString('hex');
283
+ }
284
+ static toB64(data) {
285
+ if (Buffer.isBuffer(data))
286
+ return data.toString('base64');
287
+ if (typeof data === 'string')
288
+ return Buffer.from(data).toString('base64');
289
+ return Buffer.from(JSON.stringify(data)).toString('base64');
290
+ }
291
+ static toBuffer(data) {
292
+ if (Buffer.isBuffer(data))
293
+ return data;
294
+ if (typeof data === 'string')
295
+ return Buffer.from(data);
296
+ return Buffer.from(JSON.stringify(data));
297
+ }
298
+ }
299
+ exports.DJSON = DJSON;
300
+ // Shortcuts
301
+ const djson = (data, format) => DJSON.parse(data, format);
302
+ exports.djson = djson;
303
+ const djsonSafe = (data, format) => DJSON.parseSafe(data, format);
304
+ exports.djsonSafe = djsonSafe;
305
+ const dencode = (data, format = 'json') => DJSON.encode(data, format);
306
+ exports.dencode = dencode;
307
+ const toBuffer = (data) => DJSON.encode(data, 'buffer');
308
+ exports.toBuffer = toBuffer;
309
+ const toQueryString = (data) => DJSON.encode(data, 'querystring');
310
+ exports.toQueryString = toQueryString;
311
+ const toKeyValue = (data) => DJSON.encode(data, 'keyvalue');
312
+ exports.toKeyValue = toKeyValue;
313
+ const toHex = (data) => DJSON.encode(data, 'hex');
314
+ exports.toHex = toHex;
315
+ const toBase64 = (data) => DJSON.encode(data, 'base64');
316
+ exports.toBase64 = toBase64;
317
+ exports.default = DJSON;
318
+ //# sourceMappingURL=djson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"djson.js","sourceRoot":"","sources":["../../djson/djson.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- export * from './auth/auth';
2
- export * from './controller/controller';
3
- export { createCRUD, BaseDocument, QueryFilter, PaginationOptions, DatabaseAdapter as CrudDatabaseAdapter } from './curd/crud';
4
- export * from './server/server';
5
- export * from './router/router';
1
+ export * from './realtime/codec';
6
2
  export * from './realtime/index';
7
3
  export * from './swagger/swagger';
package/dist/index.js CHANGED
@@ -14,18 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createCRUD = void 0;
18
- // Re-export Auth
19
- __exportStar(require("./auth/auth"), exports);
20
- // Re-export Controller
21
- __exportStar(require("./controller/controller"), exports);
22
- // Re-export CRUD but alias DatabaseAdapter to avoid conflicts
23
- var crud_1 = require("./curd/crud");
24
- Object.defineProperty(exports, "createCRUD", { enumerable: true, get: function () { return crud_1.createCRUD; } });
25
- // Re-export Server & Router
26
- __exportStar(require("./server/server"), exports);
27
- __exportStar(require("./router/router"), exports);
28
- // Re-export Realtime
17
+ __exportStar(require("./realtime/codec"), exports);
29
18
  __exportStar(require("./realtime/index"), exports);
30
19
  __exportStar(require("./swagger/swagger"), exports);
31
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,8CAA4B;AAC5B,uBAAuB;AACvB,0DAAwC;AACxC,8DAA8D;AAC9D,oCAMqB;AALnB,kGAAA,UAAU,OAAA;AAMZ,4BAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAEhC,qBAAqB;AACrB,mDAAiC;AACjC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const zod_1 = require("zod");
4
+ const zod_2 = require("./zod");
5
+ describe('Zod Validation Middleware', () => {
6
+ const userSchema = zod_1.z.object({
7
+ name: zod_1.z.string().min(2),
8
+ age: zod_1.z.number().gte(18)
9
+ });
10
+ describe('validateStructure', () => {
11
+ it('validates and returns data if valid', () => {
12
+ const data = { name: 'Alice', age: 25 };
13
+ const res = (0, zod_2.validateStructure)(userSchema, data);
14
+ expect(res).toEqual(data);
15
+ });
16
+ it('throws custom error object if invalid', () => {
17
+ expect(() => (0, zod_2.validateStructure)(userSchema, { name: 'A', age: 10 })).toThrowError();
18
+ try {
19
+ (0, zod_2.validateStructure)(userSchema, { name: 'A', age: 10 });
20
+ }
21
+ catch (err) {
22
+ expect(err.status).toBe(400);
23
+ expect(err.errors.length).toBe(2);
24
+ expect(err.errors[0].field).toBe('name');
25
+ }
26
+ });
27
+ });
28
+ describe('validatePagesRequest', () => {
29
+ it('calls next if valid', () => {
30
+ const middleware = (0, zod_2.validatePagesRequest)({ body: userSchema });
31
+ const req = { body: { name: 'Alice', age: 25 } };
32
+ const res = { status: jest.fn().mockReturnThis(), json: jest.fn() };
33
+ const next = jest.fn();
34
+ middleware(req, res, next);
35
+ expect(next).toHaveBeenCalled();
36
+ expect(res.status).not.toHaveBeenCalled();
37
+ });
38
+ it('returns 400 if invalid', () => {
39
+ const middleware = (0, zod_2.validatePagesRequest)({ body: userSchema });
40
+ const req = { body: { name: 'A' } };
41
+ const res = { status: jest.fn().mockReturnThis(), json: jest.fn() };
42
+ const next = jest.fn();
43
+ middleware(req, res, next);
44
+ expect(next).not.toHaveBeenCalled();
45
+ expect(res.status).toHaveBeenCalledWith(400);
46
+ expect(res.json).toHaveBeenCalled();
47
+ });
48
+ });
49
+ describe('validateAppRoute', () => {
50
+ it('passes validated data to the handler', async () => {
51
+ const handler = jest.fn().mockReturnValue(new Response('OK'));
52
+ const wrapped = (0, zod_2.validateAppRoute)(userSchema, handler);
53
+ const request = new Request('http://localhost', {
54
+ method: 'POST',
55
+ body: JSON.stringify({ name: 'Alice', age: 25 })
56
+ });
57
+ const response = await wrapped(request);
58
+ expect(handler).toHaveBeenCalledWith(request, { name: 'Alice', age: 25 });
59
+ });
60
+ it('returns a 400 response on validation failure', async () => {
61
+ const handler = jest.fn();
62
+ const wrapped = (0, zod_2.validateAppRoute)(userSchema, handler);
63
+ const request = new Request('http://localhost', {
64
+ method: 'POST',
65
+ body: JSON.stringify({ name: 'A', age: 10 })
66
+ });
67
+ const response = await wrapped(request);
68
+ expect(handler).not.toHaveBeenCalled();
69
+ expect(response.status).toBe(400);
70
+ const body = await response.json();
71
+ expect(body.message).toBe('Validation Error');
72
+ expect(body.errors.length).toBe(2);
73
+ });
74
+ });
75
+ });
76
+ //# sourceMappingURL=zod.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.test.js","sourceRoot":"","sources":["../../middleware/zod.test.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,6 @@ import { EventEmitter } from 'events';
2
2
  import { RealtimePlugin } from './plugins';
3
3
  /**
4
4
  * RealtimeCore - High performance unified pub/sub bus for Dolphin.
5
- * Supports:
6
- * - Local event emitter (in-process)
7
- * - Distributed bus via Redis (optional)
8
- * - Retained messages with TTL
9
- * - Device/Client tracking
10
- * - Plugin-based protocol handling
11
5
  */
12
6
  export declare class RealtimeCore extends EventEmitter {
13
7
  private config;
@@ -17,8 +11,13 @@ export declare class RealtimeCore extends EventEmitter {
17
11
  private plugins;
18
12
  private pending;
19
13
  private msgId;
14
+ private jsonCache;
15
+ private readonly CACHE_TTL;
16
+ private readonly MAX_CACHE_SIZE;
20
17
  private redisPub?;
21
18
  private redisSub?;
19
+ private cleanupInterval?;
20
+ private cacheCleanupInterval?;
22
21
  constructor(config?: {
23
22
  maxMessageSize?: number;
24
23
  redisUrl?: string;
@@ -26,44 +25,44 @@ export declare class RealtimeCore extends EventEmitter {
26
25
  canSubscribe: (deviceId: string, topic: string) => boolean;
27
26
  canPublish: (deviceId: string, topic: string) => boolean;
28
27
  };
28
+ enableJSONCache?: boolean;
29
+ useBinaryProtocol?: boolean;
30
+ debug?: boolean;
29
31
  });
30
- /**
31
- * Initialize Redis for distributed pub/sub.
32
- */
32
+ private log;
33
+ private toJSON;
34
+ private getCacheKey;
35
+ private setCache;
36
+ private cleanJSONCache;
33
37
  private initRedis;
34
- /**
35
- * Subscribe to a topic pattern.
36
- */
37
38
  subscribe(topic: string, fn: (data: any) => void, deviceId?: string): void;
38
- /**
39
- * Publish a message to a topic.
40
- */
41
39
  publish(topic: string, payload: any, opts?: {
42
40
  retain?: boolean;
43
41
  ttl?: number;
44
42
  }, deviceId?: string): void;
45
43
  private publishInternal;
46
44
  /**
47
- * Handle raw data from a socket.
45
+ * Handle raw data from a socket with DJSON integration
48
46
  */
49
47
  handle(raw: Buffer, socket?: any, deviceId?: string): Promise<void>;
50
- /**
51
- * Register a plugin.
52
- */
48
+ broadcast(topic: string, payload: any, opts?: {
49
+ exclude?: string[];
50
+ }): void;
53
51
  use(plugin: RealtimePlugin): void;
54
- /**
55
- * Register a device/client with an optional persistent socket.
56
- * In a distributed system, this binds the socket to this local instance.
57
- */
58
52
  register(deviceId: string, socket?: any, metadata?: any): void;
59
- /**
60
- * Unregister a device and close its socket if present.
61
- */
62
53
  unregister(deviceId: string): void;
63
54
  getSocket(deviceId: string): any;
55
+ touch(deviceId: string): void;
56
+ getStats(): {
57
+ cacheSize: number;
58
+ devices: number;
59
+ retained: number;
60
+ plugins: number;
61
+ cacheEnabled: boolean;
62
+ };
64
63
  /**
65
- * Heartbeat for a device.
64
+ * Clean up resources - Call this when shutting down
66
65
  */
67
- touch(deviceId: string): void;
66
+ destroy(): Promise<void>;
68
67
  private startCleanup;
69
68
  }