rosinterface 1.2.0 → 1.3.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.
Files changed (38) hide show
  1. package/README.md +381 -14
  2. package/dist/cli/{generate.js → Generate.js} +1 -1
  3. package/dist/cli/{generate.js.map → Generate.js.map} +1 -1
  4. package/dist/client/CommandBuilder.d.ts +6 -2
  5. package/dist/client/CommandBuilder.js +30 -7
  6. package/dist/client/CommandBuilder.js.map +1 -1
  7. package/dist/client/MikrotikClient.d.ts +11 -3
  8. package/dist/client/MikrotikClient.js +114 -23
  9. package/dist/client/MikrotikClient.js.map +1 -1
  10. package/dist/client/MikrotikPool.js +2 -2
  11. package/dist/client/MikrotikPool.js.map +1 -1
  12. package/dist/client/MikrotikSwarm.d.ts +18 -0
  13. package/dist/client/MikrotikSwarm.js +93 -0
  14. package/dist/client/MikrotikSwarm.js.map +1 -0
  15. package/dist/core/HttpConstants.d.ts +24 -0
  16. package/dist/core/HttpConstants.js +52 -0
  17. package/dist/core/HttpConstants.js.map +1 -0
  18. package/dist/core/RestProtocol.d.ts +24 -0
  19. package/dist/core/RestProtocol.js +151 -0
  20. package/dist/core/RestProtocol.js.map +1 -0
  21. package/dist/core/RosError.d.ts +25 -0
  22. package/dist/core/RosError.js +71 -0
  23. package/dist/core/RosError.js.map +1 -0
  24. package/dist/core/RosProtocol.js.map +1 -1
  25. package/dist/features/FileManager.d.ts +17 -3
  26. package/dist/features/FileManager.js +76 -14
  27. package/dist/features/FileManager.js.map +1 -1
  28. package/dist/utils/MikrotikCollection.d.ts +1 -0
  29. package/dist/utils/MikrotikCollection.js +3 -0
  30. package/dist/utils/MikrotikCollection.js.map +1 -1
  31. package/package.json +19 -8
  32. package/dist/generated/ISecret.d.ts +0 -14
  33. package/dist/generated/ISecret.js +0 -3
  34. package/dist/generated/ISecret.js.map +0 -1
  35. package/dist/test_library.d.ts +0 -1
  36. package/dist/test_library.js +0 -34
  37. package/dist/test_library.js.map +0 -1
  38. /package/dist/cli/{generate.d.ts → Generate.d.ts} +0 -0
@@ -13,14 +13,22 @@ export interface MikrotikOptions extends SocketClientOptions {
13
13
  allowInsecureConfig?: boolean;
14
14
  rateLimit?: number;
15
15
  circuitBreaker?: CircuitBreakerOptions;
16
+ protocol?: 'socket' | 'rest';
17
+ socketPort?: number;
16
18
  }
17
19
  export interface Subscription {
18
20
  stop: () => Promise<void>;
19
21
  }
22
+ export interface IWriteOptions {
23
+ idempotent?: boolean;
24
+ idempotencyKey?: string;
25
+ }
20
26
  export declare class MikrotikClient {
21
- private socket;
27
+ private readonly socket;
22
28
  private readonly options;
23
29
  private readonly isConfigFromEnv;
30
+ private readonly rest;
31
+ private isManuallyClosing;
24
32
  private activeLiveCollections;
25
33
  readonly files: FileManager;
26
34
  readonly schema: SchemaMapper;
@@ -30,8 +38,8 @@ export declare class MikrotikClient {
30
38
  private currentSentence;
31
39
  constructor(options: MikrotikOptions);
32
40
  connect(): Promise<void>;
33
- private printSeriousWarning;
34
41
  close(): void;
42
+ private printSeriousWarning;
35
43
  command<T extends Record<string, any> = any>(path: string): CommandBuilder<T>;
36
44
  transaction(): MikrotikTransaction;
37
45
  collection<T extends Record<string, any> = Record<string, any>>(path: string): {
@@ -40,7 +48,7 @@ export declare class MikrotikClient {
40
48
  onSnapshot: (callback: SnapshotCallback<T>) => SnapshotSubscription<T>;
41
49
  };
42
50
  getMetrics(path: string, metrics: MetricDefinition[], params?: Record<string, any>): Promise<string>;
43
- write(command: string, parameters?: Record<string, string | boolean | number>): Promise<any[]>;
51
+ write(command: string, parameters?: Record<string, string | boolean | number>, options?: IWriteOptions): Promise<any[]>;
44
52
  stream(commandOrLines: string | string[], parameters: Record<string, string | boolean | number> | undefined, callback: (data: any) => void): Subscription;
45
53
  private generateTag;
46
54
  private buildPayload;
@@ -47,10 +47,14 @@ const FileManager_1 = require("../features/FileManager");
47
47
  const PrometheusExporter_1 = require("../features/PrometheusExporter");
48
48
  const LiveCollection_1 = require("../features/LiveCollection");
49
49
  const MikrotikTransaction_1 = require("./MikrotikTransaction");
50
+ const RestProtocol_1 = require("../core/RestProtocol");
50
51
  dotenv.config();
51
52
  class MikrotikClient {
52
53
  constructor(options) {
54
+ this.socket = null;
53
55
  this.isConfigFromEnv = false;
56
+ this.rest = null;
57
+ this.isManuallyClosing = false;
54
58
  this.activeLiveCollections = new Map();
55
59
  this.schema = new SchemaMapper_1.SchemaMapper();
56
60
  this.pendingCommands = new Map();
@@ -59,39 +63,108 @@ class MikrotikClient {
59
63
  const envUser = process.env.MIKROTIK_USER;
60
64
  const envPass = process.env.MIKROTIK_PASS;
61
65
  const envPort = process.env.MIKROTIK_PORT;
66
+ const envProtocol = process.env.MIKROTIK_PROTOCOL;
67
+ const envSocketPort = process.env.MIKROTIK_PORT_APISSL;
62
68
  this.isConfigFromEnv = !!(envHost && envUser && envPass);
63
69
  this.options = {
64
70
  host: envHost || options.host,
65
71
  user: envUser || options.user,
66
72
  password: envPass || options.password,
67
73
  port: envPort ? Number(envPort) : options.port,
74
+ protocol: envProtocol || options.protocol || 'socket',
75
+ socketPort: envSocketPort ? Number(envSocketPort) : options.socketPort,
68
76
  useTLS: options.useTLS ?? false,
69
77
  rejectUnauthorized: options.rejectUnauthorized ?? false,
70
78
  allowInsecureConfig: options.allowInsecureConfig ?? false,
71
79
  timeout: options.timeout || 10,
72
80
  rateLimit: options.rateLimit || 50,
73
81
  };
74
- this.rateLimiter = new RateLimiter_1.RateLimiter(this.options.rateLimit);
82
+ this.rateLimiter = new RateLimiter_1.RateLimiter(this.options.rateLimit || 50);
75
83
  this.breaker = new CircuitBreaker_1.CircuitBreaker(options.circuitBreaker);
76
84
  this.files = new FileManager_1.FileManager(this);
77
85
  if (!this.isConfigFromEnv && this.options.allowInsecureConfig) {
78
86
  this.printSeriousWarning();
79
87
  }
80
- this.socket = new SocketClient_1.SocketClient(this.options);
81
- this.socket.on('data', (word) => this.processIncomingWord(word));
82
- this.socket.on('close', () => this.rejectAllCommands(new Error('Connection closed')));
83
- this.socket.on('error', (err) => this.rejectAllCommands(err));
88
+ if (this.options.protocol === 'rest') {
89
+ const targetPort = this.options.port === 8728 ? 443 : (this.options.port || 443);
90
+ this.rest = new RestProtocol_1.RestProtocol({
91
+ host: this.options.host,
92
+ user: this.options.user || 'admin',
93
+ pass: this.options.password || '',
94
+ port: targetPort,
95
+ timeout: (this.options.timeout ?? 10) * 1000,
96
+ insecure: !this.options.rejectUnauthorized
97
+ });
98
+ }
99
+ const shouldInitSocket = this.options.protocol === 'socket' ||
100
+ (this.options.protocol === 'rest' && !!this.options.socketPort);
101
+ if (shouldInitSocket) {
102
+ const socketTargetPort = this.options.protocol === 'socket'
103
+ ? (this.options.port || 8728)
104
+ : this.options.socketPort;
105
+ this.socket = new SocketClient_1.SocketClient({
106
+ host: this.options.host,
107
+ port: socketTargetPort,
108
+ useTLS: this.options.useTLS,
109
+ rejectUnauthorized: this.options.rejectUnauthorized
110
+ });
111
+ }
112
+ else {
113
+ this.socket = null;
114
+ }
84
115
  }
85
116
  async connect() {
117
+ this.isManuallyClosing = false;
86
118
  if (!this.isConfigFromEnv && !this.options.allowInsecureConfig) {
87
119
  throw new Error('FATAL: Insecure Configuration. Use .env or allowInsecureConfig: true');
88
120
  }
89
121
  await this.breaker.execute(async () => {
90
- await this.socket.connect();
91
- await this.login();
122
+ if (this.rest && this.options.protocol === 'rest') {
123
+ await this.rest.connect();
124
+ if (this.socket) {
125
+ await this.socket.connect();
126
+ this.socket.on('data', (word) => this.processIncomingWord(word));
127
+ this.socket.on('close', () => {
128
+ if (this.isManuallyClosing) {
129
+ this.pendingCommands.clear();
130
+ }
131
+ else {
132
+ this.rejectAllCommands(new Error('Stream Connection closed unexpectedly'));
133
+ }
134
+ });
135
+ this.socket.on('error', (err) => this.rejectAllCommands(err));
136
+ await this.login();
137
+ }
138
+ }
139
+ else if (this.socket) {
140
+ await this.socket.connect();
141
+ this.socket.on('data', (word) => this.processIncomingWord(word));
142
+ this.socket.on('close', () => {
143
+ if (this.isManuallyClosing) {
144
+ this.pendingCommands.clear();
145
+ }
146
+ else {
147
+ this.rejectAllCommands(new Error('Connection closed unexpectedly'));
148
+ }
149
+ });
150
+ this.socket.on('error', (err) => this.rejectAllCommands(err));
151
+ await this.login();
152
+ }
153
+ else {
154
+ throw new Error("MikrotikClient: No driver initialized. Check configuration.");
155
+ }
92
156
  await this.schema.load(this);
93
157
  });
94
158
  }
159
+ close() {
160
+ this.isManuallyClosing = true;
161
+ if (this.socket) {
162
+ this.socket.close();
163
+ }
164
+ if (this.rest) {
165
+ this.rest.close();
166
+ }
167
+ }
95
168
  printSeriousWarning() {
96
169
  const border = "=".repeat(60);
97
170
  console.warn(`\n\x1b[33m${border}\x1b[0m`);
@@ -99,9 +172,6 @@ class MikrotikClient {
99
172
  console.warn('\x1b[33m%s\x1b[0m', 'Using hardcoded credentials. Please use .env file.');
100
173
  console.warn(`\x1b[33m${border}\x1b[0m\n`);
101
174
  }
102
- close() {
103
- this.socket.close();
104
- }
105
175
  command(path) {
106
176
  const realPath = this.schema.resolve(path);
107
177
  return new CommandBuilder_1.CommandBuilder(this, realPath);
@@ -137,22 +207,39 @@ class MikrotikClient {
137
207
  const data = await this.command(path).print(params);
138
208
  return PrometheusExporter_1.PrometheusExporter.export(data, metrics);
139
209
  }
140
- async write(command, parameters) {
210
+ async write(command, parameters, options) {
141
211
  return this.breaker.execute(async () => {
142
212
  await this.rateLimiter.acquire();
143
- return new Promise((resolve, reject) => {
144
- const tag = this.generateTag();
145
- const payload = this.buildPayload(command, parameters, tag);
146
- this.pendingCommands.set(tag, {
147
- resolve,
148
- reject,
149
- data: [],
150
- isStream: false,
151
- startTime: Date.now(),
152
- tag
213
+ if (this.rest && this.options.protocol === 'rest') {
214
+ try {
215
+ const result = await this.rest.command(command, parameters, {
216
+ idempotent: options?.idempotent,
217
+ idempotencyKey: options?.idempotencyKey
218
+ });
219
+ if (result === null)
220
+ return [];
221
+ return Array.isArray(result) ? result : [result];
222
+ }
223
+ catch (error) {
224
+ throw error;
225
+ }
226
+ }
227
+ if (this.socket) {
228
+ return new Promise((resolve, reject) => {
229
+ const tag = this.generateTag();
230
+ const payload = this.buildPayload(command, parameters, tag);
231
+ this.pendingCommands.set(tag, {
232
+ resolve,
233
+ reject,
234
+ data: [],
235
+ isStream: false,
236
+ startTime: Date.now(),
237
+ tag
238
+ });
239
+ this.sendPayload(payload);
153
240
  });
154
- this.sendPayload(payload);
155
- });
241
+ }
242
+ throw new Error("MikrotikClient: No protocol driver initialized (Socket or REST).");
156
243
  });
157
244
  }
158
245
  stream(commandOrLines, parameters, callback) {
@@ -199,6 +286,10 @@ class MikrotikClient {
199
286
  return payload;
200
287
  }
201
288
  sendPayload(payload) {
289
+ if (!this.socket) {
290
+ console.error("MikrotikClient Error: Attempted to send payload via inactive socket. Check 'socketPort' config.");
291
+ return;
292
+ }
202
293
  for (const word of payload) {
203
294
  this.socket.write(RosProtocol_1.RosProtocol.encodeSentence(word));
204
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MikrotikClient.js","sourceRoot":"","sources":["../../src/client/MikrotikClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MikrotikClient.js","sourceRoot":"","sources":["../../src/client/MikrotikClient.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ class MikrotikPool {
16
16
  async connect() {
17
17
  if (this.isConnected)
18
18
  return;
19
- console.log(`🚀 Initializing Pool with ${this.options.poolSize} connections...`);
19
+ console.log(`Initializing Pool with ${this.options.poolSize} connections...`);
20
20
  const connectionPromises = [];
21
21
  for (let i = 0; i < (this.options.poolSize || 5); i++) {
22
22
  const client = new MikrotikClient_1.MikrotikClient(this.options);
@@ -25,7 +25,7 @@ class MikrotikPool {
25
25
  }
26
26
  await Promise.all(connectionPromises);
27
27
  this.isConnected = true;
28
- console.log(`✅ Pool Ready: ${this.clients.length} sockets connected.`);
28
+ console.log(`Pool Ready: ${this.clients.length} sockets connected.`);
29
29
  }
30
30
  close() {
31
31
  this.clients.forEach(client => client.close());
@@ -1 +1 @@
1
- {"version":3,"file":"MikrotikPool.js","sourceRoot":"","sources":["../../src/client/MikrotikPool.ts"],"names":[],"mappings":";;;AAAA,qDAAiF;AACjF,qDAAkD;AAelD,MAAa,YAAY;IAMrB,YAAY,OAAoB;QALxB,YAAO,GAAqB,EAAE,CAAC;QAE/B,oBAAe,GAAW,CAAC,CAAC;QAC5B,gBAAW,GAAY,KAAK,CAAC;QAGjC,IAAI,CAAC,OAAO,GAAG;YACX,QAAQ,EAAE,CAAC;YACX,GAAG,OAAO;SACb,CAAC;IACN,CAAC;IAKM,KAAK,CAAC,OAAO;QAChB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,OAAO,CAAC,QAAQ,iBAAiB,CAAC,CAAC;QAEjF,MAAM,kBAAkB,GAAoB,EAAE,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;QAGD,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IAKM,KAAK;QACR,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAMO,kBAAkB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAGlD,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAExE,OAAO,MAAM,CAAC;IAClB,CAAC;IAMM,OAAO,CAAsC,IAAY;QAE5D,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,OAAO,IAAI,+BAAc,CAAI,cAAc,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAKM,KAAK,CAAC,OAAe,EAAE,UAAgC;QAC1D,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAMM,MAAM,CACT,OAAe,EACf,UAA2C,EAC3C,QAA6B;QAE7B,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;CACJ;AA1FD,oCA0FC"}
1
+ {"version":3,"file":"MikrotikPool.js","sourceRoot":"","sources":["../../src/client/MikrotikPool.ts"],"names":[],"mappings":";;;AAAA,qDAAiF;AACjF,qDAAkD;AAelD,MAAa,YAAY;IAMrB,YAAY,OAAoB;QALxB,YAAO,GAAqB,EAAE,CAAC;QAE/B,oBAAe,GAAW,CAAC,CAAC;QAC5B,gBAAW,GAAY,KAAK,CAAC;QAGjC,IAAI,CAAC,OAAO,GAAG;YACX,QAAQ,EAAE,CAAC;YACX,GAAG,OAAO;SACb,CAAC;IACN,CAAC;IAKM,KAAK,CAAC,OAAO;QAChB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,QAAQ,iBAAiB,CAAC,CAAC;QAE9E,MAAM,kBAAkB,GAAoB,EAAE,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;QAGD,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;IACzE,CAAC;IAKM,KAAK;QACR,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAMO,kBAAkB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAGlD,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAExE,OAAO,MAAM,CAAC;IAClB,CAAC;IAMM,OAAO,CAAsC,IAAY;QAE5D,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,OAAO,IAAI,+BAAc,CAAI,cAAc,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAKM,KAAK,CAAC,OAAe,EAAE,UAAgC;QAC1D,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAMM,MAAM,CACT,OAAe,EACf,UAA2C,EAC3C,QAA6B;QAE7B,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;CACJ;AA1FD,oCA0FC"}
@@ -0,0 +1,18 @@
1
+ import { MikrotikClient, MikrotikOptions, IWriteOptions } from './MikrotikClient';
2
+ export interface SwarmResult {
3
+ nodeId: string;
4
+ success: boolean;
5
+ data?: any[];
6
+ error?: string;
7
+ }
8
+ export declare class MikrotikSwarm {
9
+ private nodes;
10
+ addNode(id: string, config: MikrotikOptions): void;
11
+ connectAll(): Promise<void>;
12
+ broadcast(command: string, params?: Record<string, any>, options?: IWriteOptions): Promise<SwarmResult[]>;
13
+ multicast(nodeIds: string[], command: string, params?: Record<string, any>, options?: IWriteOptions): Promise<SwarmResult[]>;
14
+ closeAll(): void;
15
+ getOfflineNodes(): string[];
16
+ getNode(id: string): MikrotikClient | undefined;
17
+ private executeOnClients;
18
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MikrotikSwarm = void 0;
4
+ const MikrotikClient_1 = require("./MikrotikClient");
5
+ class MikrotikSwarm {
6
+ constructor() {
7
+ this.nodes = new Map();
8
+ }
9
+ addNode(id, config) {
10
+ if (this.nodes.has(id)) {
11
+ console.warn(`[MikrotikSwarm] Warning: Overwriting existing node ID '${id}'.`);
12
+ }
13
+ const client = new MikrotikClient_1.MikrotikClient(config);
14
+ this.nodes.set(id, client);
15
+ }
16
+ async connectAll() {
17
+ console.log(`[Swarm] Connecting to ${this.nodes.size} nodes...`);
18
+ const promises = Array.from(this.nodes.entries()).map(async ([id, client]) => {
19
+ try {
20
+ await client.connect();
21
+ console.log(`[${id}] Connected`);
22
+ }
23
+ catch (err) {
24
+ console.error(`[${id}] Connection Failed: ${err.message}`);
25
+ }
26
+ });
27
+ await Promise.allSettled(promises);
28
+ }
29
+ async broadcast(command, params, options) {
30
+ console.log(`[Swarm] Broadcasting: ${command} to ${this.nodes.size} nodes.`);
31
+ return this.executeOnClients(Array.from(this.nodes.entries()), command, params, options);
32
+ }
33
+ async multicast(nodeIds, command, params, options) {
34
+ const targetEntries = Array.from(this.nodes.entries())
35
+ .filter(([id]) => nodeIds.includes(id));
36
+ console.log(`🐝 [Swarm] Multicasting: ${command} to ${targetEntries.length} selected nodes.`);
37
+ return this.executeOnClients(targetEntries, command, params, options);
38
+ }
39
+ closeAll() {
40
+ this.nodes.forEach((client, id) => {
41
+ try {
42
+ client.close();
43
+ }
44
+ catch (e) {
45
+ console.error(`Error closing client ${id}`, e);
46
+ }
47
+ });
48
+ console.log('🐝 [Swarm] All connections closed.');
49
+ }
50
+ getOfflineNodes() {
51
+ const offline = [];
52
+ this.nodes.forEach((client, id) => {
53
+ });
54
+ return offline;
55
+ }
56
+ getNode(id) {
57
+ return this.nodes.get(id);
58
+ }
59
+ async executeOnClients(entries, command, params, options) {
60
+ const promises = entries.map(async ([id, client]) => {
61
+ try {
62
+ const result = await client.write(command, params, options);
63
+ return {
64
+ nodeId: id,
65
+ success: true,
66
+ data: result
67
+ };
68
+ }
69
+ catch (err) {
70
+ return {
71
+ nodeId: id,
72
+ success: false,
73
+ error: err.message || 'Unknown error'
74
+ };
75
+ }
76
+ });
77
+ const outcomes = await Promise.allSettled(promises);
78
+ return outcomes.map((outcome, index) => {
79
+ if (outcome.status === 'fulfilled') {
80
+ return outcome.value;
81
+ }
82
+ else {
83
+ return {
84
+ nodeId: entries[index][0],
85
+ success: false,
86
+ error: String(outcome.reason)
87
+ };
88
+ }
89
+ });
90
+ }
91
+ }
92
+ exports.MikrotikSwarm = MikrotikSwarm;
93
+ //# sourceMappingURL=MikrotikSwarm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MikrotikSwarm.js","sourceRoot":"","sources":["../../src/client/MikrotikSwarm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export declare enum RosHttpStatus {
2
+ OK = 200,
3
+ CREATED = 201,
4
+ NO_CONTENT = 204,
5
+ BAD_REQUEST = 400,
6
+ UNAUTHORIZED = 401,
7
+ FORBIDDEN = 403,
8
+ NOT_FOUND = 404,
9
+ METHOD_NOT_ALLOWED = 405,
10
+ NOT_ACCEPTABLE = 406,
11
+ CONFLICT = 409,
12
+ GONE = 410,
13
+ PAYLOAD_TOO_LARGE = 413,
14
+ UNSUPPORTED_MEDIA_TYPE = 415,
15
+ LOCKED = 423,
16
+ TOO_MANY_REQUESTS = 429,
17
+ INTERNAL_SERVER_ERROR = 500,
18
+ NOT_IMPLEMENTED = 501,
19
+ BAD_GATEWAY = 502,
20
+ SERVICE_UNAVAILABLE = 503,
21
+ GATEWAY_TIMEOUT = 504
22
+ }
23
+ export declare const RosHttpMessages: Record<number, string>;
24
+ export declare function isRetryableCode(status: number): boolean;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RosHttpMessages = exports.RosHttpStatus = void 0;
4
+ exports.isRetryableCode = isRetryableCode;
5
+ var RosHttpStatus;
6
+ (function (RosHttpStatus) {
7
+ RosHttpStatus[RosHttpStatus["OK"] = 200] = "OK";
8
+ RosHttpStatus[RosHttpStatus["CREATED"] = 201] = "CREATED";
9
+ RosHttpStatus[RosHttpStatus["NO_CONTENT"] = 204] = "NO_CONTENT";
10
+ RosHttpStatus[RosHttpStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
11
+ RosHttpStatus[RosHttpStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
12
+ RosHttpStatus[RosHttpStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
13
+ RosHttpStatus[RosHttpStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
14
+ RosHttpStatus[RosHttpStatus["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
15
+ RosHttpStatus[RosHttpStatus["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE";
16
+ RosHttpStatus[RosHttpStatus["CONFLICT"] = 409] = "CONFLICT";
17
+ RosHttpStatus[RosHttpStatus["GONE"] = 410] = "GONE";
18
+ RosHttpStatus[RosHttpStatus["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
19
+ RosHttpStatus[RosHttpStatus["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
20
+ RosHttpStatus[RosHttpStatus["LOCKED"] = 423] = "LOCKED";
21
+ RosHttpStatus[RosHttpStatus["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
22
+ RosHttpStatus[RosHttpStatus["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
23
+ RosHttpStatus[RosHttpStatus["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
24
+ RosHttpStatus[RosHttpStatus["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
25
+ RosHttpStatus[RosHttpStatus["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
26
+ RosHttpStatus[RosHttpStatus["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
27
+ })(RosHttpStatus || (exports.RosHttpStatus = RosHttpStatus = {}));
28
+ exports.RosHttpMessages = {
29
+ 400: "Bad Request: Parameter validation failed, syntax error, or item already exists.",
30
+ 401: "Unauthorized: Invalid username/password or token expired.",
31
+ 403: "Forbidden: Your user group does not have permission for this policy/menu.",
32
+ 404: "Not Found: The menu path or specific item ID (*id) does not exist.",
33
+ 405: "Method Not Allowed: This action (verb) is not supported on this menu.",
34
+ 406: "Not Acceptable: One or more parameters have invalid types/formats.",
35
+ 413: "Payload Too Large: The file/body size exceeds RouterOS limits.",
36
+ 429: "Too Many Requests: REST API concurrency limit reached. Slow down.",
37
+ 500: "RouterOS Internal Error: The command caused a script failure or system crash.",
38
+ 501: "Not Implemented: The required package is disabled or not installed.",
39
+ 503: "Service Unavailable: Router is booting, overloaded, or maintenance mode.",
40
+ 504: "Gateway Timeout: The command execution exceeded the timeout limit.",
41
+ };
42
+ function isRetryableCode(status) {
43
+ return [
44
+ RosHttpStatus.TOO_MANY_REQUESTS,
45
+ RosHttpStatus.INTERNAL_SERVER_ERROR,
46
+ RosHttpStatus.BAD_GATEWAY,
47
+ RosHttpStatus.SERVICE_UNAVAILABLE,
48
+ RosHttpStatus.GATEWAY_TIMEOUT,
49
+ RosHttpStatus.LOCKED
50
+ ].includes(status);
51
+ }
52
+ //# sourceMappingURL=HttpConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpConstants.js","sourceRoot":"","sources":["../../src/core/HttpConstants.ts"],"names":[],"mappings":";;;AAyDA,0CASC;AA3DD,IAAY,aA0BX;AA1BD,WAAY,aAAa;IAErB,+CAAQ,CAAA;IACR,yDAAa,CAAA;IACb,+DAAgB,CAAA;IAGhB,iEAAiB,CAAA;IACjB,mEAAkB,CAAA;IAClB,6DAAe,CAAA;IACf,6DAAe,CAAA;IACf,+EAAwB,CAAA;IACxB,uEAAoB,CAAA;IACpB,2DAAc,CAAA;IACd,mDAAU,CAAA;IACV,6EAAuB,CAAA;IACvB,uFAA4B,CAAA;IAC5B,uDAAY,CAAA;IACZ,6EAAuB,CAAA;IAGvB,qFAA2B,CAAA;IAC3B,yEAAqB,CAAA;IACrB,iEAAiB,CAAA;IACjB,iFAAyB,CAAA;IACzB,yEAAqB,CAAA;AACzB,CAAC,EA1BW,aAAa,6BAAb,aAAa,QA0BxB;AAKY,QAAA,eAAe,GAA2B;IACnD,GAAG,EAAE,iFAAiF;IACtF,GAAG,EAAE,2DAA2D;IAChE,GAAG,EAAE,2EAA2E;IAChF,GAAG,EAAE,oEAAoE;IACzE,GAAG,EAAE,uEAAuE;IAC5E,GAAG,EAAE,oEAAoE;IACzE,GAAG,EAAE,gEAAgE;IACrE,GAAG,EAAE,mEAAmE;IACxE,GAAG,EAAE,+EAA+E;IACpF,GAAG,EAAE,qEAAqE;IAC1E,GAAG,EAAE,0EAA0E;IAC/E,GAAG,EAAE,oEAAoE;CAC5E,CAAC;AAMF,SAAgB,eAAe,CAAC,MAAc;IAC1C,OAAO;QACH,aAAa,CAAC,iBAAiB;QAC/B,aAAa,CAAC,qBAAqB;QACnC,aAAa,CAAC,WAAW;QACzB,aAAa,CAAC,mBAAmB;QACjC,aAAa,CAAC,eAAe;QAC7B,aAAa,CAAC,MAAM;KACvB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface IRestOptions {
2
+ host: string;
3
+ user: string;
4
+ pass: string;
5
+ port?: number;
6
+ timeout?: number;
7
+ insecure?: boolean;
8
+ }
9
+ export interface ICommandOptions {
10
+ idempotent?: boolean;
11
+ idempotencyKey?: string;
12
+ }
13
+ export declare class RestProtocol {
14
+ private readonly baseUrl;
15
+ private readonly authHeader;
16
+ private readonly dispatcher;
17
+ private readonly timeout;
18
+ constructor(options: IRestOptions);
19
+ connect(): Promise<boolean>;
20
+ close(): void;
21
+ command(cmd: string, params?: Record<string, any>, options?: ICommandOptions): Promise<any>;
22
+ private recoverExistingItem;
23
+ private translateToRest;
24
+ }