rosinterface 1.0.1 → 1.1.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,13 +1,19 @@
1
1
  # RosInterface
2
2
 
3
- > **Enterprise-Grade MikroTik RouterOS API Client for Node.js**
4
- > High-performance, **Offline-First** and **Type-Safe** framework for modern network automation.
3
+ > **High-Performance RouterOS Automation A modern TypeScript and JavasScript Library for MikroTik interactions.**
4
+ > Built with Reactive Streaming (onSnapshot), Circuit Breakers for fault tolerance, and an Offline Queue system.
5
+ > Transform raw RouterOS commands into synchronized, type-safe application state.
6
+
7
+ > **Automatización de Alto Rendimiento para RouterOS Una librería moderna en TypeScript y JavaScript para interactuar con MikroTik.**
8
+ > Diseñada con Streaming Reactivo (onSnapshot), Circuit Breakers para tolerancia a fallos y un sistema de Cola Offline.
9
+ > Transforma comandos crudos de RouterOS en un estado de aplicación sincronizado y con tipado seguro.
5
10
 
6
11
  [![npm version](https://img.shields.io/npm/v/rosinterface.svg?style=flat-square)](https://www.npmjs.com/package/rosinterface)
7
12
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
8
13
 
9
14
  ---
10
15
 
16
+
11
17
  ## English Documentation
12
18
 
13
19
  **RosInterface** is designed for **ISPs and mission-critical environments**.
@@ -17,19 +23,34 @@ It focuses on **connection stability**, **router hardware protection**, and **ef
17
23
 
18
24
  ### ✨ Key Features
19
25
 
20
- - **🛡️ Hardware Protection**
26
+ - **Hardware Protection**
21
27
  Built-in **Rate Limiter** with intelligent backoff to prevent RouterOS CPU saturation.
22
28
 
23
- - **🔌 Offline-First Architecture**
29
+ - **Offline-First Architecture**
24
30
  Commands marked with `.persistent()` are automatically queued if the router is offline and synchronized once connectivity is restored.
25
31
 
26
- - **🧠 Smart Caching**
32
+ - **Smart Caching**
27
33
  Read operations are cached for **5 seconds (TTL)** to reduce redundant API calls and router load.
28
34
 
29
- - **🔍 Source-Side Filtering**
35
+ - **Source-Side Filtering**
30
36
  Use `.findBy()` and `.findOne()` to filter data **directly on the router**, minimizing bandwidth and latency.
31
37
 
32
- - **🌊 Fluent API**
38
+ - **On-time changes**
39
+ Use `.collection()` and `.onSnapshot()` to get changes on real time **directly the router**, for to get new data without call to many times to your router.
40
+
41
+ - **Fault Tolerance (Circuit Breaker)**
42
+
43
+ Implements the `Circuit Breaker` pattern. If the router stops responding or encounters critical errors, the library temporarily "cuts the circuit" to prevent the accumulation of failed requests and protect the stability of your Node.js server.
44
+
45
+ - **Native Observability**
46
+
47
+ Built-in `.getMetrics()` method. Exports traffic statistics and router status directly in a format compatible with Prometheus and Grafana without the need for external plugins.
48
+
49
+ - **Transport Security**
50
+
51
+ Full support for **TLS/SSL (SSL API)**, allowing secure encrypted connections over port 8729 (recommended to change this), ideal for managing routers over the public internet.
52
+
53
+ - **Fluent API**
33
54
  Chainable, expressive syntax for clean and maintainable automation code.
34
55
 
35
56
  ---
@@ -39,7 +60,7 @@ It focuses on **connection stability**, **router hardware protection**, and **ef
39
60
 
40
61
  ### ✨ Important Considerations
41
62
 
42
- #### 📄 Environment Variables (.env)
63
+ #### Environment Variables (.env)
43
64
 
44
65
  Create a `.env` file in the root directory of your project:
45
66
 
@@ -56,32 +77,41 @@ MIKROTIK_PORT=8729
56
77
  >
57
78
  > Use **only in controlled, local or test environments**.
58
79
 
80
+
81
+ >⚠️ **Performance Warning**
82
+ >
83
+ > The `onSnapshot` function allows you to receive **real-time** router changes in RosInterface.
84
+ > To avoid negative performance impacts on low-spec devices, it is recommended to use it with **Resilience** enabled.
85
+ >
86
+ > Use it **in moderation; excessive use of onSnapshot can negatively affect the performance of your devices**.
87
+
88
+
59
89
  ---
60
90
 
61
91
 
62
- ### 🛠 Usage Examples
92
+ ### Usage Examples
63
93
 
64
- #### 1️⃣ Basic Connection
94
+ #### 1. Basic Connection
65
95
 
66
96
  ```ts
67
97
  import { MikrotikClient } from 'rosinterface';
68
98
 
69
99
  const client = new MikrotikClient({
70
- host: 'IP_DEL_ROUTER',
100
+ host: 'ROUTER_IP (LOCAL OR REMOTE)',
71
101
  user: 'admin',
72
102
  password: 'password',
73
- useTLS: false, // ⚠️ Test only
103
+ port: 8729, // We recommended change the default port
104
+ useTLS: false, // Test only
74
105
  rateLimit: 50,
75
- allowInsecureConfig: true // ⚠️ Never in production or release
106
+ allowInsecureConfig: true // Never in production or release
76
107
  });
77
108
 
78
109
  await client.connect();
79
110
  ```
80
111
  ---
81
112
 
82
- ---
83
113
 
84
- #### 2️⃣ Recommended connection (Production/Release)
114
+ #### 2. Recommended connection (Production/Release)
85
115
 
86
116
  ```ts
87
117
  import { MikrotikClient } from 'rosinterface';
@@ -92,8 +122,8 @@ const client = new MikrotikClient({
92
122
  user: process.env.MIKROTIK_USER,
93
123
  password: process.env.MIKROTIK_PASSWORD,
94
124
  port: Number(process.env.MIKROTIK_PORT) || 8729,
95
- useTLS: true,
96
- rateLimit: 50
125
+ useTLS: true, //Always use TLS between TLS v1.2 or TLS v1.3 deppend that your devices
126
+ rateLimit: 50 //Here you adjust the number of requests per second you want it to support (Anti DDoS)
97
127
  });
98
128
 
99
129
  await client.connect();
@@ -103,7 +133,7 @@ await client.connect();
103
133
 
104
134
 
105
135
 
106
- #### 2️⃣ Optimized Read (select + findOne)
136
+ #### 3. Optimized Read (select + findOne)
107
137
 
108
138
  ```ts
109
139
  const user = await client.command('/ppp/secret')
@@ -115,7 +145,7 @@ console.log(`User: ${user?.name}, Profile: ${user?.profile}`);
115
145
 
116
146
  ---
117
147
 
118
- #### 3️⃣ Resilience with Persistence (Offline-Safe)
148
+ #### 4. Resilience with Persistence (Offline-Safe)
119
149
 
120
150
  ```ts
121
151
  const result = await client.command('/ppp/secret')
@@ -131,9 +161,87 @@ if (result === 'QUEUED_OFFLINE') {
131
161
  }
132
162
  ```
133
163
 
164
+
165
+ #### 5. Time-Limited Listener
166
+
167
+ ```ts
168
+ // Start the subscription and store the cleanup function (unsubscribe)
169
+ const unsubscribe = client.collection('/ppp/secret')
170
+ .onSnapshot((secrets) => {
171
+ console.log(`Update received. Total users: ${secrets.length}`);
172
+ });
173
+
174
+ // Set a timer to stop listening
175
+ setTimeout(() => {
176
+ console.log('Time up. Stopping subscription...');
177
+
178
+ // Stops the Router stream and clears local memory
179
+ unsubscribe();
180
+
181
+ // Optional: Close the connection if no further tasks are needed
182
+ client.close();
183
+ }, 60000); // 60 seconds
184
+ ```
185
+
186
+
187
+ #### 6. Persistent Listener (Always On)
188
+
189
+ ```ts
190
+ // The client automatically handles Keep-Alive pings (every 10s)
191
+ // to prevent idle disconnects. No need to call 'unsubscribe'.
192
+
193
+ client.collection('/interface')
194
+ .where('disabled', false) // Optional: Only active interfaces
195
+ .onSnapshot((interfaces) => {
196
+ // This callback will execute infinitely whenever a physical change
197
+ // occurs on the router (cable unplugged, traffic state, rename, etc.)
198
+ const downInterfaces = interfaces.filter(i => i.running === 'false');
199
+
200
+ if (downInterfaces.length > 0) {
201
+ console.alert(`ALERT: ${downInterfaces.length} interfaces are down.`);
202
+ }
203
+ });
204
+
205
+ // Important: Handle network errors to reconnect if power or internet is lost
206
+ client.on('close', () => {
207
+ console.log('Connection lost. Restarting service in 5s...');
208
+ setTimeout(() => connectAndListen(), 5000);
209
+ });
210
+ ```
211
+
212
+
213
+
214
+ #### 7. Prometheus Metric
215
+
216
+ ```ts
217
+ // 1. Define the map: Mikrotik Field -> Prometheus Metric
218
+ const metricsDef = [
219
+ {
220
+ name: 'mikrotik_iface_rx_total', // Final name in Prometheus
221
+ help: 'Bytes received', // Description
222
+ type: 'counter', // Type: 'counter' or 'gauge'
223
+ path: 'rx-byte', // Original field in RouterOS
224
+ labels: ['name', 'type'] // Labels for filtering (e.g., wan, bridge)
225
+ },
226
+ {
227
+ name: 'mikrotik_iface_tx_total',
228
+ help: 'Bytes transmitted',
229
+ type: 'counter',
230
+ path: 'tx-byte',
231
+ labels: ['name', 'type']
232
+ }
233
+ ];
234
+
235
+ // 2. Get the formatted plain text ready for Prometheus
236
+ // (Internally executes /interface/print and transforms the data)
237
+ const result = await client.getMetrics('/interface', metricsDef);
238
+
239
+ console.log(result);
240
+ ```
241
+
134
242
  ---
135
243
 
136
- ## 📕 Documentación en Español
244
+ ## Documentación en Español
137
245
 
138
246
  **RosInterface** está diseñado para **ISPs y entornos críticos**.
139
247
  Su objetivo es garantizar **estabilidad de conexión**, **protección del hardware MikroTik** y **consultas eficientes**, incluso con enlaces inestables.
@@ -142,26 +250,38 @@ Su objetivo es garantizar **estabilidad de conexión**, **protección del hardwa
142
250
 
143
251
  ### ✨ Características Principales
144
252
 
145
- - **🛡️ Protección del Hardware**
253
+ - **Protección del Hardware**
146
254
  Limitador de tasa integrado con retroceso inteligente para evitar saturación de CPU.
147
255
 
148
- - **🔌 Arquitectura Offline-First**
256
+ - **Arquitectura Offline-First**
149
257
  Los comandos con `.persistent()` se guardan en cola si el router no está disponible y se ejecutan automáticamente al reconectar.
150
258
 
151
- - **🧠 Caché Inteligente**
259
+ - **Caché Inteligente**
152
260
  Consultas con TTL de **5 segundos**, reduciendo llamadas innecesarias.
153
261
 
154
- - **🔍 Filtrado en Origen**
262
+ - **Filtrado en Origen**
155
263
  `.findBy()` y `.findOne()` filtran directamente en RouterOS sin descargar tablas completas.
156
264
 
157
- - **🌊 API Fluida**
265
+ - **Cambios puntuales**
266
+ Usa `.collection()` y `.onSnapshot()` para obtener cambios en tiempo real **directamente desde el router**, para obtener datos nuevos, sin llamar a su router repetidamente.
267
+
268
+ - **Tolerancia a Fallos (Circuit Breaker)**
269
+ Implementa el patrón `Circuit Breaker` . Si el router deja de responder o da errores críticos, la librería "corta el circuito" temporalmente para evitar acumular peticiones fallidas y proteger la estabilidad de tu servidor Node.js.
270
+
271
+ - **Observabilidad Nativa**
272
+ Método `.getMetrics()`integrado. Exporta estadísticas de tráfico y estado del router directamente en formato compatible con Prometheus y Grafana sin necesidad de plugins externos.
273
+
274
+ - **Seguridad de Transporte**
275
+ Soporte completo para **TLS/SSL (API-SSL)**, permitiendo conexiones encriptadas seguras a través del puerto 8729 (Recomendado cambiar), ideal para administrar routers a través de internet pública.
276
+
277
+ - **API Fluida**
158
278
  Sintaxis encadenable y clara.
159
279
 
160
280
  ---
161
281
 
162
282
  ### ✨ Consideraciones Importantes
163
283
 
164
- #### 📄 Variables de Entorno (.env)
284
+ #### Variables de Entorno (.env)
165
285
 
166
286
  Crea un archivo `.env` en el directorio raíz de tu proyecto:
167
287
 
@@ -178,22 +298,32 @@ MIKROTIK_PORT=8729
178
298
  >
179
299
  > Úsala **solo en entornos controlados, locales o de prueba**.
180
300
 
301
+
302
+ > ⚠️ **Aviso de Rendimiento**
303
+ > La función `onSnapshot` permite recibir cambios en **tiempo real** del router en RosInterface.
304
+ > Para evitar el impacto negativo de rendimiento en equipos con pocas prestaciones, se recomienda usarlo con **Resiliencia**.
305
+ >
306
+ > Úsala **con moderación, el abuso de onSnapshot puede afectar el rendimiento de tus equipos**.
307
+
308
+
309
+
181
310
  ---
182
311
 
183
- ### 🛠 Ejemplos de Uso
312
+ ### Ejemplos de Uso
184
313
 
185
- #### 1️⃣ Conexión rápida (solo pruebas)
314
+ #### 1. Conexión rápida (solo pruebas)
186
315
 
187
316
  ```ts
188
317
  import { MikrotikClient } from 'rosinterface';
189
318
 
190
319
  const client = new MikrotikClient({
191
- host: 'IP_DEL_ROUTER',
320
+ host: 'IP_DEL_ROUTER (LOCAL O REMOTO)',
192
321
  user: 'admin',
193
322
  password: 'password',
194
- useTLS: false, // ⚠️ Solo pruebas
323
+ port: 8729, // Se recomienda cambiar el puerto por defecto
324
+ useTLS: false, // Solo pruebas
195
325
  rateLimit: 50,
196
- allowInsecureConfig: true // ⚠️ Nunca en producción
326
+ allowInsecureConfig: true // Nunca en producción
197
327
  });
198
328
 
199
329
  await client.connect();
@@ -201,7 +331,7 @@ await client.connect();
201
331
 
202
332
  ---
203
333
 
204
- #### 2️⃣ Conexión Recomendada (Producción)
334
+ #### 2. Conexión Recomendada (Producción)
205
335
 
206
336
  ```ts
207
337
  import { MikrotikClient } from 'rosinterface';
@@ -212,8 +342,8 @@ const client = new MikrotikClient({
212
342
  user: process.env.MIKROTIK_USER,
213
343
  password: process.env.MIKROTIK_PASSWORD,
214
344
  port: Number(process.env.MIKROTIK_PORT) || 8729,
215
- useTLS: true,
216
- rateLimit: 50
345
+ useTLS: true, //Utilice siempre TLS entre TLS v1.2 o TLS v1.3 dependiendo de sus dispositivos
346
+ rateLimit: 50 //Aqui ajustas la cantidad de peticiones por segundo que deseas que soporte (Anti DDoS)
217
347
  });
218
348
 
219
349
  await client.connect();
@@ -221,7 +351,7 @@ await client.connect();
221
351
 
222
352
  ---
223
353
 
224
- #### 3️⃣ Lectura Optimizada
354
+ #### 3. Lectura Optimizada
225
355
 
226
356
  ```ts
227
357
  const user = await client.command('/ppp/secret')
@@ -233,7 +363,7 @@ console.log(`User: ${user?.name}, Profile: ${user?.profile}`);
233
363
 
234
364
  ---
235
365
 
236
- #### 4️⃣ Persistencia Offline
366
+ #### 4. Persistencia Offline
237
367
 
238
368
  ```ts
239
369
  const result = await client.command('/ppp/secret')
@@ -249,4 +379,86 @@ if (result === 'QUEUED_OFFLINE') {
249
379
  }
250
380
  ```
251
381
 
382
+
383
+ #### 5. Escuchar por un Tiempo Determinado (Time-Limited)
384
+
385
+ ```ts
386
+ // Iniciar la suscripción y guardar la función de limpieza (unsubscribe)
387
+ const unsubscribe = client.collection('/ppp/secret')
388
+ .onSnapshot((secrets) => {
389
+ console.log(`Actualización recibida. Total usuarios: ${secrets.length}`);
390
+ });
391
+
392
+ // Establecer un temporizador para detener la escucha
393
+ setTimeout(() => {
394
+ console.log('Tiempo finalizado. Cerrando suscripción...');
395
+
396
+ // Detiene el stream del Router y limpia la memoria local
397
+ unsubscribe();
398
+
399
+ // Opcional: Cerrar la conexión si ya no harás más tareas
400
+ client.close();
401
+ }, 60000); // 60 segundos
402
+ ```
403
+
404
+
405
+
406
+ #### 6. Escucha Persistente (Always On)
407
+
408
+ ```ts
409
+ // Configuración para mantener la conexión viva (Keep-Alive)
410
+ // El cliente enviará pings internos cada 10s para evitar desconexiones por inactividad.
411
+ // No es necesario llamar a 'unsubscribe' ni poner timeouts.
412
+
413
+ client.collection('/interface')
414
+ .where('disabled', false) // Opcional: Solo interfaces activas
415
+ .onSnapshot((interfaces) => {
416
+ // Este callback se ejecutará infinitamente cada vez que haya un cambio
417
+ // físico en el router (cable desconectado, tráfico, cambio de nombre, etc.)
418
+ const downInterfaces = interfaces.filter(i => i.running === 'false');
419
+
420
+ if (downInterfaces.length > 0) {
421
+ console.alert(`ALERTA: ${downInterfaces.length} interfaces caídas.`);
422
+ }
423
+ });
424
+
425
+ // Importante: Manejar errores de red para reconectar si se va la luz o internet
426
+ client.on('close', () => {
427
+ console.log('Conexión perdida. Reiniciando servicio en 5s...');
428
+ setTimeout(() => connectAndListen(), 5000);
429
+ });
430
+ ```
431
+
432
+
433
+ #### 7. Métricas Prometheus
434
+
435
+ ```ts
436
+ // 1. Define el mapeo: Campo Mikrotik -> Métrica Prometheus
437
+ const metricasDef = [
438
+ {
439
+ name: 'mikrotik_iface_rx_total', // Nombre final en Prometheus
440
+ help: 'Bytes recibidos', // Descripción
441
+ type: 'counter', // Tipo: 'counter' o 'gauge'
442
+ path: 'rx-byte', // Campo original en RouterOS
443
+ labels: ['name', 'type'] // Etiquetas para filtrar (ej: wan, bridge)
444
+ },
445
+ {
446
+ name: 'mikrotik_iface_tx_total',
447
+ help: 'Bytes transmitidos',
448
+ type: 'counter',
449
+ path: 'tx-byte',
450
+ labels: ['name', 'type']
451
+ }
452
+ ];
453
+
454
+ // 2. Obtén el texto formateado listo para Prometheus
455
+ // (Internamente ejecuta /interface/print y transforma los datos)
456
+ const resultado = await client.getMetrics('/interface', metricasDef);
457
+
458
+ console.log(resultado);
459
+ ```
460
+
461
+
462
+
463
+
252
464
  ---
@@ -82,8 +82,10 @@ class CommandBuilder {
82
82
  }
83
83
  const response = await this.client.write(`${this.menuPath}/add`, params);
84
84
  this.invalidatePathCache();
85
- const retItem = response.find(r => r.ret);
86
- return retItem ? retItem.ret : '';
85
+ if (Array.isArray(response) && response.length > 0 && response[0]['ret']) {
86
+ return response[0]['ret'];
87
+ }
88
+ return '';
87
89
  }
88
90
  async set(id, data) {
89
91
  const params = this.prepareParams(data);
@@ -106,8 +108,22 @@ class CommandBuilder {
106
108
  this.invalidatePathCache();
107
109
  }
108
110
  listen(callback) {
111
+ const lines = [`${this.menuPath}/print`];
109
112
  const params = this.getParams();
110
- return this.client.stream(`${this.menuPath}/print`, params, callback);
113
+ for (const [key, value] of Object.entries(params)) {
114
+ let cleanKey = key;
115
+ if (cleanKey.startsWith('?')) {
116
+ cleanKey = cleanKey.substring(1);
117
+ }
118
+ if (cleanKey === '.proplist') {
119
+ lines.push(`=${cleanKey}=${value}`);
120
+ }
121
+ else {
122
+ lines.push(`?${cleanKey}=${value}`);
123
+ }
124
+ }
125
+ lines.push('=follow=');
126
+ return this.client.stream(lines, undefined, callback);
111
127
  }
112
128
  listenMonitor(callback) {
113
129
  const rawParams = this.getParams();
@@ -1 +1 @@
1
- {"version":3,"file":"CommandBuilder.js","sourceRoot":"","sources":["../../src/client/CommandBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandBuilder.js","sourceRoot":"","sources":["../../src/client/CommandBuilder.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { SchemaMapper } from '../core/SchemaMapper';
4
4
  import { CircuitBreakerOptions } from '../core/CircuitBreaker';
5
5
  import { FileManager } from '../features/FileManager';
6
6
  import { MetricDefinition } from '../features/PrometheusExporter';
7
+ import { SnapshotCallback } from "../features/LiveCollection";
7
8
  export interface MikrotikOptions extends SocketClientOptions {
8
9
  user?: string;
9
10
  password?: string;
@@ -29,9 +30,13 @@ export declare class MikrotikClient {
29
30
  private printSeriousWarning;
30
31
  close(): void;
31
32
  command<T extends Record<string, any> = any>(path: string): CommandBuilder<T>;
33
+ collection<T = any>(path: string): {
34
+ where: (key: string, value: string | number | boolean) => any;
35
+ onSnapshot: (callback: SnapshotCallback<T>) => () => void;
36
+ };
32
37
  getMetrics(path: string, metrics: MetricDefinition[], params?: Record<string, any>): Promise<string>;
33
38
  write(command: string, parameters?: Record<string, string | boolean | number>): Promise<any[]>;
34
- stream(command: string, parameters: Record<string, string | boolean | number> | undefined, callback: (data: any) => void): Subscription;
39
+ stream(commandOrLines: string | string[], parameters: Record<string, string | boolean | number> | undefined, callback: (data: any) => void): Subscription;
35
40
  private generateTag;
36
41
  private buildPayload;
37
42
  private sendPayload;
@@ -45,6 +45,7 @@ const RateLimiter_1 = require("../core/RateLimiter");
45
45
  const CircuitBreaker_1 = require("../core/CircuitBreaker");
46
46
  const FileManager_1 = require("../features/FileManager");
47
47
  const PrometheusExporter_1 = require("../features/PrometheusExporter");
48
+ const LiveCollection_1 = require("../features/LiveCollection");
48
49
  dotenv.config();
49
50
  class MikrotikClient {
50
51
  constructor(options) {
@@ -103,6 +104,20 @@ class MikrotikClient {
103
104
  const realPath = this.schema.resolve(path);
104
105
  return new CommandBuilder_1.CommandBuilder(this, realPath);
105
106
  }
107
+ collection(path) {
108
+ const query = {};
109
+ const builder = {
110
+ where: (key, value) => {
111
+ query[key] = value;
112
+ return builder;
113
+ },
114
+ onSnapshot: (callback) => {
115
+ const liveCol = new LiveCollection_1.LiveCollection(this, path, query);
116
+ return liveCol.onSnapshot(callback);
117
+ }
118
+ };
119
+ return builder;
120
+ }
106
121
  async getMetrics(path, metrics, params) {
107
122
  const data = await this.command(path).print(params);
108
123
  return PrometheusExporter_1.PrometheusExporter.export(data, metrics);
@@ -118,22 +133,33 @@ class MikrotikClient {
118
133
  reject,
119
134
  data: [],
120
135
  isStream: false,
121
- startTime: Date.now()
136
+ startTime: Date.now(),
137
+ tag
122
138
  });
123
139
  this.sendPayload(payload);
124
140
  });
125
141
  });
126
142
  }
127
- stream(command, parameters, callback) {
143
+ stream(commandOrLines, parameters, callback) {
128
144
  const tag = this.generateTag();
129
145
  this.rateLimiter.acquire().then(() => {
130
- const payload = this.buildPayload(command, parameters, tag);
146
+ let payload;
147
+ if (Array.isArray(commandOrLines)) {
148
+ payload = [...commandOrLines];
149
+ if (!payload.some(l => l.startsWith('.tag='))) {
150
+ payload.push(`.tag=${tag}`);
151
+ }
152
+ }
153
+ else {
154
+ payload = this.buildPayload(commandOrLines, parameters, tag);
155
+ }
131
156
  this.pendingCommands.set(tag, {
132
157
  reject: (err) => console.error(`Stream error [${tag}]:`, err),
133
158
  data: [],
134
159
  isStream: true,
135
160
  onData: callback,
136
- startTime: Date.now()
161
+ startTime: Date.now(),
162
+ tag
137
163
  });
138
164
  this.sendPayload(payload);
139
165
  });
@@ -195,7 +221,8 @@ class MikrotikClient {
195
221
  reject,
196
222
  data: [],
197
223
  isStream: false,
198
- startTime: Date.now()
224
+ startTime: Date.now(),
225
+ tag
199
226
  });
200
227
  this.sendPayload(payload);
201
228
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MikrotikClient.js","sourceRoot":"","sources":["../../src/client/MikrotikClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,uCAAoC;AACpC,uDAAyE;AACzE,qDAAkD;AAClD,iDAA8C;AAC9C,qDAAkD;AAClD,uDAAoD;AACpD,qDAAkD;AAClD,2DAA+E;AAC/E,yDAAsD;AACtD,uEAAsF;AAItF,MAAM,CAAC,MAAM,EAAE,CAAC;AA2DhB,MAAa,cAAc;IA4CvB,YAAY,OAAwB;QAzCnB,oBAAe,GAAY,KAAK,CAAC;QAelC,WAAM,GAAiB,IAAI,2BAAY,EAAE,CAAC;QAmBlD,oBAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;QAKpD,oBAAe,GAAwB,EAAE,CAAC;QAI9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAE1C,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC;QAGzD,IAAI,CAAC,OAAO,GAAG;YACX,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI;YAC7B,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI;YAC7B,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC,QAAQ;YACrC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,KAAK;YACvD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,KAAK;YACzD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;SACrC,CAAC;QAGF,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;QAGnC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAC5D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAG7C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;IAMM,KAAK,CAAC,OAAO;QAEhB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC5F,CAAC;QAGD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAKO,mBAAmB;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,aAAa,MAAM,SAAS,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,6BAA6B,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,oDAAoD,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,WAAW,CAAC,CAAC;IAC/C,CAAC;IAKM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAMM,OAAO,CAAsC,IAAY;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,+BAAc,CAAI,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IASM,KAAK,CAAC,UAAU,CACnB,IAAY,EACZ,OAA2B,EAC3B,MAA4B;QAE5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,uCAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAQM,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,UAAsD;QAEtF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAGnC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAGjC,OAAO,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;gBAE5D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC1B,OAAO;oBACP,MAAM;oBACN,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,KAAK;oBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACxB,CAAC,CAAC;gBAEH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAMM,MAAM,CACT,OAAe,EACf,UAAiE,EACjE,QAA6B;QAI7B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAG/B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAE5D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC1B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,EAAE,GAAG,CAAC;gBAC7D,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAGH,OAAO;YACH,IAAI,EAAE,KAAK,IAAI,EAAE;gBAEb,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACxD,CAAC;SACJ,CAAC;IACN,CAAC;IAMO,WAAW;QACf,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEO,YAAY,CAAC,OAAe,EAAE,MAAW,EAAE,GAAW;QAC1D,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC9C,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,WAAW,CAAC,OAAiB;QACjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,KAAK;QACf,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;oBAChD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;oBAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;iBACxC,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEpD,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjC,MAAM,WAAW,GAAG,WAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;oBAEpF,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;wBAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;wBAC7B,QAAQ,EAAE,WAAW;qBACxB,CAAC,CAAC;gBACP,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAMO,aAAa,CAAC,OAAe,EAAE,UAAgB;QACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAE5D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC1B,OAAO;gBACP,MAAM;gBACN,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;aAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC/E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAKO,aAAa,CAAC,QAA6B;QAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAG3C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YAExB,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,2BAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;aAEI,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAG1C,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5D,MAAM,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;oBACjC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;gBACD,GAAG,CAAC,OAAO,CAAC,2BAAY,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;aAEI,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC;YAEjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO;YACX,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,KAAY;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;CACJ;AAjXD,wCAiXC"}
1
+ {"version":3,"file":"MikrotikClient.js","sourceRoot":"","sources":["../../src/client/MikrotikClient.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,13 @@ export interface SocketClientOptions {
11
11
  export declare class SocketClient extends EventEmitter {
12
12
  private socket;
13
13
  private options;
14
- private connected;
14
+ connected: boolean;
15
15
  private receiveBuffer;
16
16
  constructor(options: SocketClientOptions);
17
17
  connect(): Promise<void>;
18
18
  write(data: Buffer): void;
19
19
  close(): void;
20
20
  destroy(): void;
21
+ private cleanup;
21
22
  private handleDataChunk;
22
23
  }
@@ -57,11 +57,7 @@ class SocketClient extends events_1.EventEmitter {
57
57
  return new Promise((resolve, reject) => {
58
58
  if (this.connected)
59
59
  return resolve();
60
- if (this.socket) {
61
- this.socket.removeAllListeners();
62
- this.socket.destroy();
63
- this.socket = null;
64
- }
60
+ this.cleanup();
65
61
  const timeoutMs = (this.options.timeout || 10) * 1000;
66
62
  try {
67
63
  if (this.options.useTLS) {
@@ -96,8 +92,8 @@ class SocketClient extends events_1.EventEmitter {
96
92
  this.connected = true;
97
93
  if (this.socket)
98
94
  this.socket.setTimeout(0);
99
- resolve();
100
95
  this.emit('connect');
96
+ resolve();
101
97
  });
102
98
  this.socket.on('error', (err) => {
103
99
  if (!this.connected) {
@@ -137,6 +133,14 @@ class SocketClient extends events_1.EventEmitter {
137
133
  this.connected = false;
138
134
  }
139
135
  }
136
+ cleanup() {
137
+ if (this.socket) {
138
+ this.socket.removeAllListeners();
139
+ this.socket.destroy();
140
+ this.socket = null;
141
+ }
142
+ this.receiveBuffer = buffer_1.Buffer.alloc(0);
143
+ }
140
144
  handleDataChunk(chunk) {
141
145
  this.receiveBuffer = buffer_1.Buffer.concat([this.receiveBuffer, chunk]);
142
146
  while (this.receiveBuffer.length > 0) {
@@ -151,8 +155,8 @@ class SocketClient extends events_1.EventEmitter {
151
155
  }
152
156
  const payload = this.receiveBuffer.slice(byteLength, totalPacketSize);
153
157
  this.receiveBuffer = this.receiveBuffer.slice(totalPacketSize);
154
- const sentence = payload.toString('utf8');
155
- this.emit('data', sentence);
158
+ const word = payload.toString('utf8');
159
+ this.emit('data', word);
156
160
  }
157
161
  }
158
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SocketClient.js","sourceRoot":"","sources":["../../src/core/SocketClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SocketClient.js","sourceRoot":"","sources":["../../src/core/SocketClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { MikrotikClient } from "../client/MikrotikClient";
2
+ export type SnapshotCallback<T> = (items: T[]) => void;
3
+ export declare class LiveCollection<T = any> {
4
+ private client;
5
+ private path;
6
+ private query;
7
+ private localCache;
8
+ private subscription;
9
+ private listeners;
10
+ private isInitializing;
11
+ constructor(client: MikrotikClient, path: string, query?: Record<string, string | number | boolean>);
12
+ onSnapshot(callback: SnapshotCallback<T>): () => void;
13
+ private startListening;
14
+ private processPacket;
15
+ private emit;
16
+ private unsubscribe;
17
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LiveCollection = void 0;
4
+ class LiveCollection {
5
+ constructor(client, path, query = {}) {
6
+ this.client = client;
7
+ this.path = path;
8
+ this.query = query;
9
+ this.localCache = new Map();
10
+ this.subscription = null;
11
+ this.listeners = [];
12
+ this.isInitializing = false;
13
+ }
14
+ onSnapshot(callback) {
15
+ this.listeners.push(callback);
16
+ if (this.subscription || this.isInitializing) {
17
+ if (this.localCache.size > 0) {
18
+ callback(Array.from(this.localCache.values()));
19
+ }
20
+ }
21
+ else {
22
+ this.startListening().catch(err => {
23
+ console.error("RosInterface: Error starting live listener", err);
24
+ });
25
+ }
26
+ return () => this.unsubscribe(callback);
27
+ }
28
+ async startListening() {
29
+ if (this.isInitializing)
30
+ return;
31
+ this.isInitializing = true;
32
+ try {
33
+ const cmd = this.client.command(this.path);
34
+ cmd.where('.proplist', '.id,.dead,name,comment,disabled,profile,service,user,password,address,uptime,mac-address,caller-id');
35
+ if (this.query) {
36
+ Object.keys(this.query).forEach(key => {
37
+ const value = this.query[key];
38
+ if (['string', 'number', 'boolean'].includes(typeof value)) {
39
+ cmd.where(key, value);
40
+ }
41
+ });
42
+ }
43
+ this.subscription = cmd.listen((packet) => {
44
+ this.processPacket(packet);
45
+ });
46
+ }
47
+ catch (error) {
48
+ console.error(`RosInterface: Failed to listen on ${this.path}`, error);
49
+ this.isInitializing = false;
50
+ }
51
+ }
52
+ processPacket(packet) {
53
+ const rawId = packet['.id'] || packet['id'];
54
+ if (!rawId)
55
+ return;
56
+ if (packet['.dead'] === true || packet['dead'] === true) {
57
+ this.localCache.delete(rawId);
58
+ }
59
+ else {
60
+ const existing = this.localCache.get(rawId) || {};
61
+ const cleanPacket = {};
62
+ for (const key of Object.keys(packet)) {
63
+ const cleanKey = key.startsWith('.') ? key.substring(1) : key;
64
+ cleanPacket[cleanKey] = packet[key];
65
+ }
66
+ const updated = { ...existing, ...cleanPacket };
67
+ this.localCache.set(rawId, updated);
68
+ }
69
+ this.emit();
70
+ }
71
+ emit() {
72
+ const fullList = Array.from(this.localCache.values());
73
+ this.listeners.forEach(cb => cb(fullList));
74
+ }
75
+ unsubscribe(callback) {
76
+ this.listeners = this.listeners.filter(l => l !== callback);
77
+ if (this.listeners.length === 0 && this.subscription) {
78
+ try {
79
+ this.subscription.stop();
80
+ }
81
+ catch (e) {
82
+ console.warn('RosInterface: Error stopping subscription', e);
83
+ }
84
+ this.subscription = null;
85
+ this.localCache.clear();
86
+ this.isInitializing = false;
87
+ }
88
+ }
89
+ }
90
+ exports.LiveCollection = LiveCollection;
91
+ //# sourceMappingURL=LiveCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveCollection.js","sourceRoot":"","sources":["../../src/features/LiveCollection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PrometheusExporter.js","sourceRoot":"","sources":["../../src/features/PrometheusExporter.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,iCAAmB,CAAA;AACvB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAoBD,MAAa,kBAAkB;IAQpB,MAAM,CAAC,MAAM,CAAC,UAAmC,EAAE,WAA+B;QACrF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAE5B,MAAM,IAAI,UAAU,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;YACnD,MAAM,IAAI,UAAU,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;YAGnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAGpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBAGpD,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;wBAE3C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC;wBAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAEvD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBACrD,OAAO,GAAG,cAAc,KAAK,aAAa,GAAG,CAAC;oBAClD,CAAC,CAAC,CAAC;oBACH,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC9C,CAAC;gBAID,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,GAAG,WAAW,IAAI,KAAK,IAAI,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA/CD,gDA+CC"}
1
+ {"version":3,"file":"PrometheusExporter.js","sourceRoot":"","sources":["../../src/features/PrometheusExporter.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,iCAAmB,CAAA;AACvB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAoBD,MAAa,kBAAkB;IASpB,MAAM,CAAC,MAAM,CAAC,UAAmC,EAAE,WAA+B;QACrF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAE5B,MAAM,IAAI,UAAU,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;YACnD,MAAM,IAAI,UAAU,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;YAGnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAGpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBAGpD,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;wBAE3C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC;wBAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAEvD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBACrD,OAAO,GAAG,cAAc,KAAK,aAAa,GAAG,CAAC;oBAClD,CAAC,CAAC,CAAC;oBACH,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC9C,CAAC;gBAID,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,GAAG,WAAW,IAAI,KAAK,IAAI,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAhDD,gDAgDC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rosinterface_1 = require("rosinterface");
4
+ async function test() {
5
+ console.clear();
6
+ const client = new rosinterface_1.MikrotikClient({
7
+ host: '192.168.3.30',
8
+ user: '',
9
+ password: '',
10
+ port: 8728,
11
+ useTLS: false,
12
+ rateLimit: 50,
13
+ allowInsecureConfig: true,
14
+ });
15
+ try {
16
+ await client.connect();
17
+ await client.command('/ppp/secret').add({
18
+ name: 'PruebaLIB',
19
+ profile: 'default',
20
+ password: 'PruebaConLIB',
21
+ comment: 'Se agrego usando RosInterface'
22
+ });
23
+ console.log("Se agrego el cliente usando RosInterface");
24
+ }
25
+ catch (e) {
26
+ console.error(e);
27
+ }
28
+ }
29
+ test();
30
+ //# sourceMappingURL=test_library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test_library.js","sourceRoot":"","sources":["../src/test_library.ts"],"names":[],"mappings":";;AAAA,+CAA6C;AAE7C,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,6BAAc,CAAC;QAC/B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,EAAE;QACb,mBAAmB,EAAE,IAAI;KAC3B,CAAC,CAAC;IAEH,IAAG,CAAC;QAEA,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAEtB,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC;YACrC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,+BAA+B;SAC3C,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAG5D,CAAC;IAAA,OAAM,CAAC,EAAC,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;AACL,CAAC;AAGD,IAAI,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rosinterface",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "High-performance, Offline-First Mikrotik RouterOS API Client for Enterprise.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,7 +29,8 @@
29
29
  "test": "ts-node test_integration.ts"
30
30
  },
31
31
  "dependencies": {
32
- "dotenv": "^16.4.5"
32
+ "dotenv": "^16.4.5",
33
+ "rosinterface": "^1.0.1"
33
34
  },
34
35
  "devDependencies": {
35
36
  "@types/node": "^20.12.7",