stelar-time-real 2.0.0 → 2.0.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/README.md CHANGED
@@ -558,6 +558,11 @@ client.emitBinary('upload', fileData);
558
558
 
559
559
  ## Changelog
560
560
 
561
+ ### v2.0.1
562
+ - Bugfix:修复reconexión infinita en cliente (llamaba a `connect()` en vez de `_connect()`)
563
+ - Security: IDs ahora usan crypto.randomUUID() en vez de Math.random()
564
+ - Fix: Validación de tipo en join-room para evitar casts inseguros
565
+
561
566
  ### v2.0.0
562
567
  - 🎉 **TypeScript!** - Código fuente ahora es TypeScript
563
568
  - Tipos completos para IDEs (VS Code, WebStorm, etc.)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stelar-time-real",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "WebSocket liviano y rápido sin dependendas en TypeScript. Alternativa a socket.io, namespaces, ACKs y archivos binarios.",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
package/src/client.js CHANGED
@@ -177,7 +177,7 @@ class StelarClient {
177
177
  const reconHandler = this.events.get('reconnecting');
178
178
  if (reconHandler)
179
179
  reconHandler(this._reconnectAttempts);
180
- setTimeout(() => this.connect(), this.options.reconnectionDelay * this._reconnectAttempts);
180
+ setTimeout(() => this._connect(), this.options.reconnectionDelay * this._reconnectAttempts);
181
181
  }
182
182
  };
183
183
  this.ws.onerror = (err) => {
package/src/client.ts CHANGED
@@ -215,7 +215,7 @@ class StelarClient {
215
215
  this._reconnectAttempts++;
216
216
  const reconHandler = this.events.get('reconnecting');
217
217
  if (reconHandler) reconHandler(this._reconnectAttempts);
218
- setTimeout(() => this.connect(), this.options.reconnectionDelay * this._reconnectAttempts);
218
+ setTimeout(() => this._connect(), this.options.reconnectionDelay * this._reconnectAttempts);
219
219
  }
220
220
  };
221
221
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAC7E,OAAO,EAAmB,SAAS,EAAW,MAAM,IAAI,CAAC;AAGzD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,eAAe,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACzD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9D,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IACrE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,KAAK,IAAI,CAAC;AAE3F,cAAM,YAAY;IAChB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,gBAAgB,CAAyB;gBAErC,OAAO,GAAE,aAAkB;IAOvC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY;IAIlE,GAAG,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAKvC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKpD,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAK3C,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAK/C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKtD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAO7C,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAazD,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IASpD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IASpD,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE;IAQhE,OAAO,IAAI,MAAM;IAQjB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,gBAAgB;IAwIxB,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCzD,IAAI,IAAI,IAAI;CAMb;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/src/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createServer } from 'http';
2
2
  import { WebSocketServer } from 'ws';
3
+ import { randomUUID } from 'crypto';
3
4
  class StelarServer {
4
5
  constructor(options = {}) {
5
6
  this.server = null;
@@ -116,7 +117,7 @@ class StelarServer {
116
117
  client.close();
117
118
  return;
118
119
  }
119
- const clientId = Math.random().toString(36).substring(7);
120
+ const clientId = randomUUID();
120
121
  const clientInfo = { id: clientId, room: null, lastPing: Date.now() };
121
122
  this.clients.set(client, clientInfo);
122
123
  const ctx = {
@@ -189,8 +190,10 @@ class StelarServer {
189
190
  return;
190
191
  }
191
192
  if (event === 'join-room') {
192
- clientInfo.room = data;
193
- client.send(JSON.stringify({ event: 'joined-room', data }));
193
+ if (typeof data === 'string') {
194
+ clientInfo.room = data;
195
+ client.send(JSON.stringify({ event: 'joined-room', data }));
196
+ }
194
197
  }
195
198
  if (event === 'leave-room') {
196
199
  clientInfo.room = null;
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createServer, IncomingMessage, Server, ServerResponse } from 'http';
2
2
  import { WebSocketServer, WebSocket, RawData } from 'ws';
3
+ import { randomUUID } from 'crypto';
3
4
 
4
5
  export interface StelarOptions {
5
6
  port?: number;
@@ -179,7 +180,7 @@ class StelarServer {
179
180
  return;
180
181
  }
181
182
 
182
- const clientId = Math.random().toString(36).substring(7);
183
+ const clientId = randomUUID();
183
184
  const clientInfo: StelarClientInfo = { id: clientId, room: null, lastPing: Date.now() };
184
185
  this.clients.set(client, clientInfo);
185
186
 
@@ -258,8 +259,10 @@ class StelarServer {
258
259
  }
259
260
 
260
261
  if (event === 'join-room') {
261
- clientInfo.room = data as string;
262
- client.send(JSON.stringify({ event: 'joined-room', data }));
262
+ if (typeof data === 'string') {
263
+ clientInfo.room = data;
264
+ client.send(JSON.stringify({ event: 'joined-room', data }));
265
+ }
263
266
  }
264
267
 
265
268
  if (event === 'leave-room') {