node-opcua-server-discovery 2.178.0 → 2.179.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.
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @module node-opcua-server-discovery
3
+ */
1
4
  import { ServerOnNetwork } from "node-opcua-service-discovery";
2
5
  export declare class MDNSResponder {
3
6
  #private;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MDNSResponder = void 0;
4
2
  /**
5
3
  * @module node-opcua-server-discovery
6
4
  */
7
- const sterfive_bonjour_service_1 = require("sterfive-bonjour-service");
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MDNSResponder = void 0;
8
7
  const node_opcua_debug_1 = require("node-opcua-debug");
9
8
  const node_opcua_object_registry_1 = require("node-opcua-object-registry");
10
9
  const node_opcua_service_discovery_1 = require("node-opcua-service-discovery");
10
+ const sterfive_bonjour_service_1 = require("sterfive-bonjour-service");
11
11
  const debugLog = (0, node_opcua_debug_1.make_debugLog)("LDSSERVER");
12
12
  const doDebug = (0, node_opcua_debug_1.checkDebugFlag)("LDSSERVER") || true;
13
13
  const registry = new node_opcua_object_registry_1.ObjectRegistry();
@@ -58,7 +58,8 @@ class MDNSResponder {
58
58
  // },
59
59
  const existingIndex = findServiceIndex(service.name);
60
60
  if (existingIndex >= 0) {
61
- debugLog("Ignoring existing server ", service.name);
61
+ // c8 ignore next
62
+ doDebug && debugLog("Ignoring existing server ", service.name);
62
63
  return;
63
64
  }
64
65
  this.#recordId++;
@@ -72,7 +73,7 @@ class MDNSResponder {
72
73
  .map((x) => x.toUpperCase())
73
74
  .sort();
74
75
  const path = service_txt.path || "";
75
- const discoveryUrl = "opc.tcp://" + service.host + ":" + service.port + path;
76
+ const discoveryUrl = `opc.tcp://${service.host}:${service.port}${path}`;
76
77
  this.registeredServers.push(new node_opcua_service_discovery_1.ServerOnNetwork({
77
78
  discoveryUrl,
78
79
  recordId,
@@ -80,14 +81,17 @@ class MDNSResponder {
80
81
  serverName
81
82
  }));
82
83
  this.lastUpdateDate = new Date(Date.now());
83
- debugLog("a new OPCUA server has been registered on mDNS", service.name, recordId);
84
+ // c8 ignore next
85
+ doDebug && debugLog("a new OPCUA server has been registered on mDNS", service.name, recordId);
84
86
  };
85
87
  const removeService = (service) => {
86
88
  const serverName = service.name;
87
- debugLog("a OPCUA server has been unregistered in mDNS", serverName);
89
+ // c8 ignore next
90
+ doDebug && debugLog("a OPCUA server has been unregistered in mDNS", serverName);
88
91
  const index = findServiceIndex(serverName);
89
92
  if (index === -1) {
90
- debugLog("Cannot find server with name ", serverName, " in registeredServers");
93
+ // c8 ignore next
94
+ doDebug && debugLog("Cannot find server with name ", serverName, " in registeredServers");
91
95
  return;
92
96
  }
93
97
  this.registeredServers.splice(index, 1); // remove element at index
@@ -1 +1 @@
1
- {"version":3,"file":"mdns_responder.js","sourceRoot":"","sources":["../source/mdns_responder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mdns_responder.js","sourceRoot":"","sources":["../source/mdns_responder.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * @module node-opcua-server-discovery
3
3
  */
4
4
  import { type Message, type MessageSecurityMode, type SecurityPolicy, type ServerSecureChannelLayer } from "node-opcua-secure-channel";
5
- import { OPCUABaseServer, OPCUABaseServerEvents, type OPCUABaseServerOptions } from "node-opcua-server";
5
+ import { OPCUABaseServer, type OPCUABaseServerEvents, type OPCUABaseServerOptions } from "node-opcua-server";
6
6
  import { BonjourHolder, MdnsDiscoveryConfiguration, type RegisteredServer } from "node-opcua-service-discovery";
7
7
  import { ApplicationDescription, type ApplicationDescriptionOptions } from "node-opcua-service-endpoints";
8
8
  import { MDNSResponder } from "./mdns_responder";
@@ -17,7 +17,10 @@ export interface OPCUADiscoveryServerOptions extends OPCUABaseServerOptions {
17
17
  interface RegisteredServerExtended extends RegisteredServer {
18
18
  bonjourHolder: BonjourHolder;
19
19
  serverInfo: ApplicationDescriptionOptions;
20
- discoveryConfiguration?: MdnsDiscoveryConfiguration[];
20
+ discoveryConfiguration?: MdnsDiscoveryConfigurationExtended[];
21
+ }
22
+ interface MdnsDiscoveryConfigurationExtended extends MdnsDiscoveryConfiguration {
23
+ bonjourHolder?: BonjourHolder;
21
24
  }
22
25
  type RegisterServerMap = Map<string, RegisteredServerExtended>;
23
26
  export interface OPCUADiscoveryServerEvents extends OPCUABaseServerEvents {
@@ -104,9 +104,9 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
104
104
  (0, node_opcua_assert_1.assert)(!this.mDnsResponder);
105
105
  (0, node_opcua_assert_1.assert)(Array.isArray(this.capabilitiesForMDNS));
106
106
  this._preInitTask.push(async () => {
107
- await this._delayInit();
107
+ await this._delayInit?.();
108
108
  });
109
- await new Promise((resolve, reject) => super.start((err) => err ? reject(err) : resolve()));
109
+ await new Promise((resolve, reject) => super.start((err) => (err ? reject(err) : resolve())));
110
110
  const endpointUri = this.getEndpointUrl();
111
111
  const { hostname } = new node_url_1.URL(endpointUri);
112
112
  this.mDnsResponder = new mdns_responder_1.MDNSResponder();
@@ -124,26 +124,33 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
124
124
  if (this.#shutting_down)
125
125
  return;
126
126
  this.#shutting_down = true;
127
- debugLog("stopping announcement of LDS on mDNS");
128
- //
127
+ // c8 ignore next
128
+ doDebug && debugLog("stopping announcement of LDS on mDNS");
129
+ //
129
130
  for (const registeredServer of this.registeredServers.values()) {
130
- debugLog("LDS is shutting down and is forcefuly unregistering server", registeredServer.serverUri);
131
+ // c8 ignore next
132
+ doDebug && debugLog("LDS is shutting down and is forcefuly unregistering server", registeredServer.serverUri);
131
133
  await this.#internalRegisterServerOffline(registeredServer, true);
132
134
  }
133
135
  if (this.mDnsResponder) {
134
- debugLog("disposing mDnsResponder");
136
+ // c8 ignore next
137
+ doDebug && debugLog("disposing mDnsResponder");
135
138
  await this.mDnsResponder.dispose();
136
139
  this.mDnsResponder = undefined;
137
- debugLog(" mDnsResponder disposed");
140
+ // c8 ignore next
141
+ doDebug && debugLog(" mDnsResponder disposed");
138
142
  }
139
143
  if (this.mDnsLDSAnnouncer) {
140
- debugLog("disposing mDnsLDSAnnouncer of this LDS to the mDNS");
144
+ // c8 ignore next
145
+ doDebug && debugLog("disposing mDnsLDSAnnouncer of this LDS to the mDNS");
141
146
  await this.mDnsLDSAnnouncer.stopAnnouncedOnMulticastSubnet();
142
147
  this.mDnsLDSAnnouncer = undefined;
143
148
  }
144
- debugLog("Shutting down Discovery Server");
145
- await new Promise((resolve, reject) => super.shutdown((err) => err ? reject(err) : resolve()));
146
- debugLog("stopping announcement of LDS on mDNS - DONE");
149
+ // c8 ignore next
150
+ doDebug && debugLog("Shutting down Discovery Server");
151
+ await new Promise((resolve, reject) => super.shutdown((err) => (err ? reject(err) : resolve())));
152
+ // c8 ignore next
153
+ doDebug && debugLog("stopping announcement of LDS on mDNS - DONE");
147
154
  // add a extra delay to ensure that the port is really closed
148
155
  // and registered server propagated the fact that LDS is not here anymore
149
156
  await new Promise((resolve) => setTimeout(resolve, 1000));
@@ -168,13 +175,15 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
168
175
  const request = message.request;
169
176
  (0, node_opcua_assert_1.assert)(request.schema.name === "RegisterServer2Request");
170
177
  request.discoveryConfiguration = request.discoveryConfiguration || [];
171
- this.#internalRegisterServer(node_opcua_service_discovery_1.RegisterServer2Response, request.server, request.discoveryConfiguration).then((response) => {
178
+ this.#internalRegisterServer(node_opcua_service_discovery_1.RegisterServer2Response, request.server, request.discoveryConfiguration)
179
+ .then((response) => {
172
180
  channel.send_response("MSG", response, message);
173
- }).catch((err) => {
181
+ })
182
+ .catch((err) => {
174
183
  errorLog("What shall I do ?", err.message);
175
184
  errorLog(err);
176
185
  let additional_messages = [];
177
- additional_messages.push("EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! " + request.schema.name);
186
+ additional_messages.push(`EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! ${request.schema.name}`);
178
187
  additional_messages.push(err.message);
179
188
  if (err.stack) {
180
189
  additional_messages = additional_messages.concat(err.stack.split("\n"));
@@ -188,11 +197,13 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
188
197
  (0, node_opcua_assert_1.assert)(message.request instanceof node_opcua_service_discovery_1.RegisterServerRequest);
189
198
  const request = message.request;
190
199
  (0, node_opcua_assert_1.assert)(request.schema.name === "RegisterServerRequest");
191
- this.#internalRegisterServer(node_opcua_service_discovery_1.RegisterServerResponse, request.server, undefined).then((response) => {
200
+ this.#internalRegisterServer(node_opcua_service_discovery_1.RegisterServerResponse, request.server, undefined)
201
+ .then((response) => {
192
202
  channel.send_response("MSG", response, message);
193
- }).catch((err) => {
203
+ })
204
+ .catch((err) => {
194
205
  let additional_messages = [];
195
- additional_messages.push("EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! " + request.schema.name);
206
+ additional_messages.push(`EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! ${request.schema.name}`);
196
207
  additional_messages.push(err.message);
197
208
  if (err.stack) {
198
209
  additional_messages = additional_messages.concat(err.stack.split("\n"));
@@ -249,13 +260,15 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
249
260
  const servers = [];
250
261
  request.serverCapabilityFilter = request.serverCapabilityFilter || [];
251
262
  const serverCapabilityFilter = request.serverCapabilityFilter
252
- .map((x) => x.toUpperCase())
263
+ .map((x) => x?.toUpperCase())
253
264
  .sort()
254
265
  .join(" ");
255
- debugLog(" startingRecordId = ", request.startingRecordId);
266
+ // c8 ignore next
267
+ doDebug && debugLog(" startingRecordId = ", request.startingRecordId);
256
268
  if (this.mDnsResponder) {
257
269
  for (const serverOnNetwork of this.mDnsResponder.registeredServers) {
258
- debugLog("Exploring server ", serverOnNetwork.serverName);
270
+ // c8 ignore next
271
+ doDebug && debugLog("Exploring server ", serverOnNetwork.serverName);
259
272
  if (serverOnNetwork.recordId <= request.startingRecordId) {
260
273
  continue;
261
274
  }
@@ -266,10 +279,12 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
266
279
  }
267
280
  continue;
268
281
  }
269
- debugLog(" server ", serverOnNetwork.serverName, " found");
282
+ // c8 ignore next
283
+ doDebug && debugLog(" server ", serverOnNetwork.serverName, " found");
270
284
  servers.push(serverOnNetwork);
271
285
  if (servers.length === request.maxRecordsToReturn) {
272
- debugLog("max records to return reached", request.maxRecordsToReturn);
286
+ // c8 ignore next
287
+ doDebug && debugLog("max records to return reached", request.maxRecordsToReturn);
273
288
  break;
274
289
  }
275
290
  }
@@ -282,15 +297,19 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
282
297
  }
283
298
  async #stopAnnouncedOnMulticastSubnet(conf) {
284
299
  const b = conf.bonjourHolder;
300
+ if (!b) {
301
+ throw new Error("#stopAnnouncedOnMulticastSubnet: conf has no bonjourHolder");
302
+ }
285
303
  await b.stopAnnouncedOnMulticastSubnet();
286
304
  conf.bonjourHolder = undefined;
287
305
  }
288
306
  async #announcedOnMulticastSubnet(conf, announcement) {
289
307
  const serviceConfig = (0, node_opcua_service_discovery_1.announcementToServiceConfig)(announcement);
290
308
  let b = conf.bonjourHolder;
291
- if (b && b.serviceConfig) {
309
+ if (b?.serviceConfig) {
292
310
  if ((0, node_opcua_service_discovery_1.isSameService)(b.serviceConfig, serviceConfig)) {
293
- debugLog("Configuration ", conf.mdnsServerName, " has not changed !");
311
+ // c8 ignore next
312
+ doDebug && debugLog("Configuration ", conf.mdnsServerName, " has not changed !");
294
313
  // nothing to do
295
314
  return;
296
315
  }
@@ -310,14 +329,14 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
310
329
  }
311
330
  async #dealWithDiscoveryConfiguration(previousConfMap, server1, serverInfo, discoveryConfiguration) {
312
331
  // mdnsServerName String The name of the Server when it is announced via mDNS.
313
- // See Part 12 for the details about mDNS. This string shall be
332
+ // See Part 12 for the details about mDNS. This string shall be
314
333
  // less than 64 bytes.
315
- // If not specified the first element of the serverNames array
334
+ // If not specified the first element of the serverNames array
316
335
  // is used (truncated to 63 bytes if necessary).
317
336
  // serverCapabilities [] String The set of Server capabilities supported by the Server.
318
337
  // A Server capability is a short identifier for a feature
319
338
  // The set of allowed Server capabilities are defined in Part 12.
320
- discoveryConfiguration.mdnsServerName ??= server1.serverNames[0].text;
339
+ discoveryConfiguration.mdnsServerName ??= server1.serverNames?.[0].text || null;
321
340
  serverInfo.discoveryUrls ??= [];
322
341
  const endpointUrl = serverInfo.discoveryUrls[0] || this.getEndpointUrl();
323
342
  const parsedUrl = new node_url_1.URL(endpointUrl);
@@ -331,10 +350,11 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
331
350
  };
332
351
  if (previousConfMap.has(discoveryConfiguration.mdnsServerName || "")) {
333
352
  // configuration already exists
334
- debugLog("Configuration ", discoveryConfiguration.mdnsServerName, " already exists !");
353
+ // c8 ignore next
354
+ doDebug && debugLog("Configuration ", discoveryConfiguration.mdnsServerName, " already exists !");
335
355
  const prevConf = previousConfMap.get(discoveryConfiguration.mdnsServerName || "");
336
356
  previousConfMap.delete(discoveryConfiguration.mdnsServerName || "");
337
- discoveryConfiguration.bonjourHolder = prevConf.bonjourHolder;
357
+ discoveryConfiguration.bonjourHolder = prevConf?.bonjourHolder;
338
358
  }
339
359
  // let's announce the server on the multicast DNS
340
360
  await this.#announcedOnMulticastSubnet(discoveryConfiguration, announcement);
@@ -359,7 +379,8 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
359
379
  if (!serverToUnregister) {
360
380
  throw new Error("internal error");
361
381
  }
362
- debugLog(chalk_1.default.cyan("unregistering server : "), chalk_1.default.yellow(serverToUnregister?.serverUri));
382
+ // c8 ignore next
383
+ doDebug && debugLog(chalk_1.default.cyan("unregistering server : "), chalk_1.default.yellow(serverToUnregister?.serverUri));
363
384
  configurationResults = [];
364
385
  const discoveryConfigurations = serverToUnregister?.discoveryConfiguration || [];
365
386
  for (const conf of discoveryConfigurations) {
@@ -374,12 +395,16 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
374
395
  }
375
396
  async #internalRegisterServerOnline(server, discoveryConfigurations) {
376
397
  (0, node_opcua_assert_1.assert)(discoveryConfigurations);
398
+ if (!server.serverUri) {
399
+ throw new Error("#internalRegisterServerOnline: server.serverUri is required");
400
+ }
377
401
  const key = server.serverUri;
378
402
  let configurationResults = null;
379
- debugLog(chalk_1.default.cyan(" registering server : "), chalk_1.default.yellow(server.serverUri));
403
+ // c8 ignore next
404
+ doDebug && debugLog(chalk_1.default.cyan(" registering server : "), chalk_1.default.yellow(server.serverUri));
380
405
  // prepare serverInfo which will be used by FindServers
381
406
  const serverInfo = {
382
- applicationName: server.serverNames[0], // which one shall we use ?
407
+ applicationName: server.serverNames?.[0], // which one shall we use ?
383
408
  applicationType: server.serverType,
384
409
  applicationUri: server.serverUri,
385
410
  discoveryUrls: server.discoveryUrls,
@@ -388,13 +413,15 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
388
413
  // XXX ?????? serverInfo.discoveryProfileUri = serverInfo.discoveryProfileUri;
389
414
  };
390
415
  const previousConfMap = new Map();
391
- // let check in the server has already been registed on this LDS
416
+ // let check in the server has already been registed on this LDS
392
417
  let firstTimeRegistration = true;
393
- if (this.registeredServers.has(key)) {
418
+ const previousServer = this.registeredServers.get(key);
419
+ if (previousServer) {
394
420
  // server already exists and must only be updated
395
- const previousServer = this.registeredServers.get(key);
396
- for (const conf of previousServer.discoveryConfiguration) {
397
- previousConfMap.set(conf.mdnsServerName, conf);
421
+ for (const conf of previousServer.discoveryConfiguration || []) {
422
+ if (conf.mdnsServerName) {
423
+ previousConfMap.set(conf.mdnsServerName, conf);
424
+ }
398
425
  }
399
426
  firstTimeRegistration = false;
400
427
  }
@@ -411,15 +438,16 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
411
438
  }
412
439
  // now also unregister unprocessed
413
440
  if (previousConfMap.size !== 0) {
414
- debugLog(" Warning some conf need to be removed !");
441
+ // c8 ignore next
442
+ doDebug && debugLog(" Warning some conf need to be removed !");
415
443
  }
416
444
  return configurationResults;
417
445
  }
418
- // eslint-disable-next-line max-statements
419
446
  async #internalRegisterServer(RegisterServerXResponse, rawServer, discoveryConfigurations) {
420
447
  // #region check parameter validity
421
448
  function sendError(statusCode) {
422
- debugLog(chalk_1.default.red("_on_RegisterServer(2)Request error"), statusCode.toString());
449
+ // c8 ignore next
450
+ doDebug && debugLog(chalk_1.default.red("_on_RegisterServer(2)Request error"), statusCode.toString());
423
451
  const response1 = new node_opcua_secure_channel_1.ServiceFault({
424
452
  responseHeader: { serviceResult: statusCode }
425
453
  });
@@ -431,11 +459,13 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
431
459
  const server = rawServer;
432
460
  // check serverType is valid
433
461
  if (!_isValidServerType(server.serverType)) {
434
- debugLog("Invalid server Type", node_opcua_service_endpoints_1.ApplicationType[server.serverType]);
462
+ // c8 ignore next
463
+ doDebug && debugLog("Invalid server Type", node_opcua_service_endpoints_1.ApplicationType[server.serverType]);
435
464
  return sendError(node_opcua_status_code_1.StatusCodes.BadInvalidArgument);
436
465
  }
437
466
  if (!server.serverUri) {
438
- debugLog("Missing serverURI");
467
+ // c8 ignore next
468
+ doDebug && debugLog("Missing serverURI");
439
469
  return sendError(node_opcua_status_code_1.StatusCodes.BadInvalidArgument);
440
470
  }
441
471
  server.serverNames = server.serverNames || [];
@@ -459,9 +489,9 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
459
489
  })
460
490
  ];
461
491
  }
462
- const configurationResults = server?.isOnline ?
463
- await this.#internalRegisterServerOnline(server, discoveryConfigurations) :
464
- await this.#internalRegisterServerOffline(server, false);
492
+ const configurationResults = server?.isOnline
493
+ ? await this.#internalRegisterServerOnline(server, discoveryConfigurations)
494
+ : await this.#internalRegisterServerOffline(server, false);
465
495
  const response = new RegisterServerXResponse({});
466
496
  if (response instanceof node_opcua_service_discovery_1.RegisterServer2Response) {
467
497
  response.configurationResults = configurationResults;
@@ -1 +1 @@
1
- {"version":3,"file":"opcua_discovery_server.js","sourceRoot":"","sources":["../source/opcua_discovery_server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opcua_discovery_server.js","sourceRoot":"","sources":["../source/opcua_discovery_server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-server-discovery",
3
- "version": "2.178.0",
3
+ "version": "2.179.0",
4
4
  "description": "pure nodejs OPCUA SDK - module server-discovery",
5
5
  "scripts": {
6
6
  "build": "tsc -b",
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "chalk": "4.1.2",
15
15
  "env-paths": "2.2.1",
16
- "node-opcua-assert": "2.175.6",
17
- "node-opcua-basic-types": "2.177.0",
18
- "node-opcua-certificate-manager": "2.178.0",
19
- "node-opcua-common": "2.178.0",
20
- "node-opcua-debug": "2.175.6",
21
- "node-opcua-object-registry": "2.175.6",
22
- "node-opcua-secure-channel": "2.178.0",
23
- "node-opcua-server": "2.178.0",
24
- "node-opcua-service-discovery": "2.177.0",
25
- "node-opcua-service-endpoints": "2.177.0",
26
- "node-opcua-status-code": "2.176.0",
16
+ "node-opcua-assert": "2.179.0",
17
+ "node-opcua-basic-types": "2.179.0",
18
+ "node-opcua-certificate-manager": "2.179.0",
19
+ "node-opcua-common": "2.179.0",
20
+ "node-opcua-debug": "2.179.0",
21
+ "node-opcua-object-registry": "2.179.0",
22
+ "node-opcua-secure-channel": "2.179.0",
23
+ "node-opcua-server": "2.179.0",
24
+ "node-opcua-service-discovery": "2.179.0",
25
+ "node-opcua-service-endpoints": "2.179.0",
26
+ "node-opcua-status-code": "2.179.0",
27
27
  "sterfive-bonjour-service": "1.1.4",
28
28
  "thenify-ex": "4.4.0"
29
29
  },
@@ -42,12 +42,12 @@
42
42
  "internet of things"
43
43
  ],
44
44
  "homepage": "http://node-opcua.github.io/",
45
- "gitHead": "d0e850e5f7df80e14ceb6d8e092e793472965301",
45
+ "gitHead": "c78c6ee424bae3c6e851fabd8e144390e2941f8a",
46
46
  "files": [
47
47
  "dist",
48
48
  "source"
49
49
  ],
50
50
  "devDependencies": {
51
- "node-opcua-pki": "6.20.0"
51
+ "node-opcua-pki": "6.21.0"
52
52
  }
53
53
  }
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * @module node-opcua-server-discovery
3
3
  */
4
- import { Service, Bonjour, Browser } from "sterfive-bonjour-service";
4
+
5
5
  import { checkDebugFlag, make_debugLog } from "node-opcua-debug";
6
6
  import { ObjectRegistry } from "node-opcua-object-registry";
7
7
  import { ServerOnNetwork, serviceToString } from "node-opcua-service-discovery";
8
+ import { Bonjour, type Browser, type Service } from "sterfive-bonjour-service";
8
9
 
9
10
  const debugLog = make_debugLog("LDSSERVER");
10
11
  const doDebug = checkDebugFlag("LDSSERVER") || true;
@@ -18,7 +19,7 @@ export class MDNSResponder {
18
19
  public registeredServers: ServerOnNetwork[];
19
20
 
20
21
  #bonjour: Bonjour;
21
- #mDNSBrowser: Browser;
22
+ #mDNSBrowser: Browser | undefined;
22
23
 
23
24
  #recordId: number;
24
25
  public lastUpdateDate: Date = new Date();
@@ -68,7 +69,8 @@ export class MDNSResponder {
68
69
 
69
70
  const existingIndex = findServiceIndex(service.name);
70
71
  if (existingIndex >= 0) {
71
- debugLog("Ignoring existing server ", service.name);
72
+ // c8 ignore next
73
+ doDebug && debugLog("Ignoring existing server ", service.name);
72
74
  return;
73
75
  }
74
76
 
@@ -77,7 +79,7 @@ export class MDNSResponder {
77
79
  const serverName = service.name;
78
80
 
79
81
  service.txt = service.txt || {};
80
- const service_txt = service.txt as any;
82
+ const service_txt = service.txt;
81
83
  service_txt.caps = service_txt.caps || "";
82
84
  const serverCapabilities = service_txt.caps
83
85
  .split(",")
@@ -85,7 +87,7 @@ export class MDNSResponder {
85
87
  .sort();
86
88
 
87
89
  const path = service_txt.path || "";
88
- const discoveryUrl = "opc.tcp://" + service.host + ":" + service.port + path;
90
+ const discoveryUrl = `opc.tcp://${service.host}:${service.port}${path}`;
89
91
 
90
92
  this.registeredServers.push(
91
93
  new ServerOnNetwork({
@@ -97,15 +99,18 @@ export class MDNSResponder {
97
99
  );
98
100
  this.lastUpdateDate = new Date(Date.now());
99
101
 
100
- debugLog("a new OPCUA server has been registered on mDNS", service.name, recordId);
102
+ // c8 ignore next
103
+ doDebug && debugLog("a new OPCUA server has been registered on mDNS", service.name, recordId);
101
104
  };
102
105
 
103
106
  const removeService = (service: Service) => {
104
107
  const serverName = service.name;
105
- debugLog("a OPCUA server has been unregistered in mDNS", serverName);
108
+ // c8 ignore next
109
+ doDebug && debugLog("a OPCUA server has been unregistered in mDNS", serverName);
106
110
  const index = findServiceIndex(serverName);
107
111
  if (index === -1) {
108
- debugLog("Cannot find server with name ", serverName, " in registeredServers");
112
+ // c8 ignore next
113
+ doDebug && debugLog("Cannot find server with name ", serverName, " in registeredServers");
109
114
  return;
110
115
  }
111
116
  this.registeredServers.splice(index, 1); // remove element at index
@@ -126,17 +131,16 @@ export class MDNSResponder {
126
131
  });
127
132
  }
128
133
  public async dispose(): Promise<void> {
129
-
130
134
  if (this.#mDNSBrowser) {
131
135
  this.#mDNSBrowser.stop();
132
- this.#mDNSBrowser = undefined!;
136
+ this.#mDNSBrowser = undefined;
133
137
  }
134
138
  await new Promise<void>((resolve) => {
135
139
  this.#bonjour.unpublishAll(() => {
136
140
  this.#bonjour.destroy(() => {
137
141
  resolve();
138
142
  });
139
- })
143
+ });
140
144
  });
141
145
  registry.unregister(this);
142
146
  await new Promise<void>((resolve) => setTimeout(resolve, 100));
@@ -2,7 +2,6 @@
2
2
  * @module node-opcua-server-discovery
3
3
  */
4
4
 
5
-
6
5
  import os from "node:os";
7
6
  import path from "node:path";
8
7
  import { URL } from "node:url";
@@ -24,7 +23,7 @@ import {
24
23
  import {
25
24
  type AddStandardEndpointDescriptionsParam,
26
25
  OPCUABaseServer,
27
- OPCUABaseServerEvents,
26
+ type OPCUABaseServerEvents,
28
27
  type OPCUABaseServerOptions,
29
28
  OPCUAServerEndPoint
30
29
  } from "node-opcua-server";
@@ -73,11 +72,16 @@ export interface OPCUADiscoveryServerOptions extends OPCUABaseServerOptions {
73
72
  interface RegisteredServerExtended extends RegisteredServer {
74
73
  bonjourHolder: BonjourHolder;
75
74
  serverInfo: ApplicationDescriptionOptions;
76
- discoveryConfiguration?: MdnsDiscoveryConfiguration[];
75
+ discoveryConfiguration?: MdnsDiscoveryConfigurationExtended[];
77
76
  }
78
77
 
79
- type RegisterServerMap = Map<string, RegisteredServerExtended>;
78
+ // each discoveryConfiguration entry gets its own BonjourHolder stashed on it for
79
+ // the lifetime of the mDNS announcement (see #announcedOnMulticastSubnet)
80
+ interface MdnsDiscoveryConfigurationExtended extends MdnsDiscoveryConfiguration {
81
+ bonjourHolder?: BonjourHolder;
82
+ }
80
83
 
84
+ type RegisterServerMap = Map<string, RegisteredServerExtended>;
81
85
 
82
86
  const defaultProductUri = "NodeOPCUA-LocalDiscoveryServer";
83
87
  const defaultApplicationUri = makeApplicationUrn(os.hostname(), defaultProductUri);
@@ -134,7 +138,6 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
134
138
 
135
139
  super(options);
136
140
 
137
-
138
141
  // see OPC UA Spec 1.2 part 6 : 7.4 Well Known Addresses
139
142
  // opc.tcp://localhost:4840/UADiscovery
140
143
  const port = options.port || 4840;
@@ -181,12 +184,10 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
181
184
  assert(Array.isArray(this.capabilitiesForMDNS));
182
185
 
183
186
  this._preInitTask.push(async () => {
184
- await this._delayInit!();
187
+ await this._delayInit?.();
185
188
  });
186
189
 
187
- await new Promise<void>((resolve, reject) =>
188
- super.start((err?: Error | null) =>
189
- err ? reject(err) : resolve()));
190
+ await new Promise<void>((resolve, reject) => super.start((err?: Error | null) => (err ? reject(err) : resolve())));
190
191
 
191
192
  const endpointUri = this.getEndpointUrl();
192
193
  const { hostname } = new URL(endpointUri);
@@ -195,50 +196,50 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
195
196
 
196
197
  this.mDnsLDSAnnouncer = new BonjourHolder();
197
198
 
198
- await this.mDnsLDSAnnouncer.announcedOnMulticastSubnet(
199
- {
200
- capabilities: this.capabilitiesForMDNS,
201
- name: this.serverInfo.applicationUri || "",
202
- path: "/DiscoveryServer",
203
- host: hostname || "",
204
- port: this.endpoints[0].port
205
- });
199
+ await this.mDnsLDSAnnouncer.announcedOnMulticastSubnet({
200
+ capabilities: this.capabilitiesForMDNS,
201
+ name: this.serverInfo.applicationUri || "",
202
+ path: "/DiscoveryServer",
203
+ host: hostname || "",
204
+ port: this.endpoints[0].port
205
+ });
206
206
  }
207
207
 
208
-
209
208
  #shutting_down = false;
210
209
  public async shutdown(): Promise<void> {
211
210
  if (this.#shutting_down) return;
212
211
  this.#shutting_down = true;
213
212
 
214
-
215
-
216
-
217
- debugLog("stopping announcement of LDS on mDNS");
218
- //
213
+ // c8 ignore next
214
+ doDebug && debugLog("stopping announcement of LDS on mDNS");
215
+ //
219
216
  for (const registeredServer of this.registeredServers.values()) {
220
- debugLog("LDS is shutting down and is forcefuly unregistering server", registeredServer.serverUri);
217
+ // c8 ignore next
218
+ doDebug && debugLog("LDS is shutting down and is forcefuly unregistering server", registeredServer.serverUri);
221
219
  await this.#internalRegisterServerOffline(registeredServer, true);
222
- }
223
-
220
+ }
221
+
224
222
  if (this.mDnsResponder) {
225
- debugLog("disposing mDnsResponder");
223
+ // c8 ignore next
224
+ doDebug && debugLog("disposing mDnsResponder");
226
225
  await this.mDnsResponder.dispose();
227
226
  this.mDnsResponder = undefined;
228
- debugLog(" mDnsResponder disposed");
227
+ // c8 ignore next
228
+ doDebug && debugLog(" mDnsResponder disposed");
229
229
  }
230
230
 
231
231
  if (this.mDnsLDSAnnouncer) {
232
- debugLog("disposing mDnsLDSAnnouncer of this LDS to the mDNS");
232
+ // c8 ignore next
233
+ doDebug && debugLog("disposing mDnsLDSAnnouncer of this LDS to the mDNS");
233
234
  await this.mDnsLDSAnnouncer.stopAnnouncedOnMulticastSubnet();
234
235
  this.mDnsLDSAnnouncer = undefined;
235
236
  }
236
237
 
237
- debugLog("Shutting down Discovery Server");
238
- await new Promise<void>((resolve, reject) =>
239
- super.shutdown((err) => err ? reject(err) : resolve())
240
- );
241
- debugLog("stopping announcement of LDS on mDNS - DONE");
238
+ // c8 ignore next
239
+ doDebug && debugLog("Shutting down Discovery Server");
240
+ await new Promise<void>((resolve, reject) => super.shutdown((err) => (err ? reject(err) : resolve())));
241
+ // c8 ignore next
242
+ doDebug && debugLog("stopping announcement of LDS on mDNS - DONE");
242
243
  // add a extra delay to ensure that the port is really closed
243
244
  // and registered server propagated the fact that LDS is not here anymore
244
245
  await new Promise<void>((resolve) => setTimeout(resolve, 1000));
@@ -274,25 +275,24 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
274
275
  this.#internalRegisterServer(
275
276
  RegisterServer2Response,
276
277
  request.server,
277
- request.discoveryConfiguration as MdnsDiscoveryConfiguration[],
278
- ).then((response?: Response) => {
279
- channel.send_response("MSG", response!, message);
280
- }).catch((err: Error) => {
281
- errorLog("What shall I do ?", err.message);
282
- errorLog(err);
283
- let additional_messages = [];
284
- additional_messages.push("EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! " + request.schema.name);
285
- additional_messages.push(err.message);
286
- if (err.stack) {
287
- additional_messages = additional_messages.concat(err.stack.split("\n"));
288
- }
278
+ request.discoveryConfiguration as MdnsDiscoveryConfigurationExtended[]
279
+ )
280
+ .then((response: Response) => {
281
+ channel.send_response("MSG", response, message);
282
+ })
283
+ .catch((err: Error) => {
284
+ errorLog("What shall I do ?", err.message);
285
+ errorLog(err);
286
+ let additional_messages = [];
287
+ additional_messages.push(`EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! ${request.schema.name}`);
288
+ additional_messages.push(err.message);
289
+ if (err.stack) {
290
+ additional_messages = additional_messages.concat(err.stack.split("\n"));
291
+ }
289
292
 
290
- const response = OPCUADiscoveryServer.makeServiceFault(
291
- StatusCodes.BadInternalError,
292
- additional_messages
293
- );
294
- channel.send_response("MSG", response, message);
295
- });
293
+ const response = OPCUADiscoveryServer.makeServiceFault(StatusCodes.BadInternalError, additional_messages);
294
+ channel.send_response("MSG", response, message);
295
+ });
296
296
  // c8 ignore next
297
297
  }
298
298
 
@@ -300,24 +300,18 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
300
300
  assert(message.request instanceof RegisterServerRequest);
301
301
  const request = message.request as RegisterServerRequest;
302
302
  assert(request.schema.name === "RegisterServerRequest");
303
- this.#internalRegisterServer(
304
- RegisterServerResponse,
305
- request.server,
306
- undefined).then((response) => {
307
-
308
- channel.send_response("MSG", response!, message);
309
-
310
- }).catch((err: Error) => {
303
+ this.#internalRegisterServer(RegisterServerResponse, request.server, undefined)
304
+ .then((response) => {
305
+ channel.send_response("MSG", response, message);
306
+ })
307
+ .catch((err: Error) => {
311
308
  let additional_messages = [];
312
- additional_messages.push("EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! " + request.schema.name);
309
+ additional_messages.push(`EXCEPTION CAUGHT WHILE PROCESSING REQUEST !!! ${request.schema.name}`);
313
310
  additional_messages.push(err.message);
314
311
  if (err.stack) {
315
312
  additional_messages = additional_messages.concat(err.stack.split("\n"));
316
313
  }
317
- const response = OPCUADiscoveryServer.makeServiceFault(
318
- StatusCodes.BadInternalError,
319
- additional_messages
320
- );
314
+ const response = OPCUADiscoveryServer.makeServiceFault(StatusCodes.BadInternalError, additional_messages);
321
315
  channel.send_response("MSG", response, message);
322
316
  });
323
317
  }
@@ -349,9 +343,10 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
349
343
  function sendError(statusCode: StatusCode) {
350
344
  const response1 = new FindServersOnNetworkResponse({ responseHeader: { serviceResult: statusCode } });
351
345
  return channel.send_response("MSG", response1, message);
352
- } sendError;
346
+ }
347
+ sendError;
353
348
 
354
- if(this.#shutting_down) {
349
+ if (this.#shutting_down) {
355
350
  return sendError(StatusCodes.BadShutdown);
356
351
  }
357
352
 
@@ -378,15 +373,17 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
378
373
 
379
374
  request.serverCapabilityFilter = request.serverCapabilityFilter || [];
380
375
  const serverCapabilityFilter: string = request.serverCapabilityFilter
381
- .map((x: UAString) => x!.toUpperCase())
376
+ .map((x: UAString) => x?.toUpperCase())
382
377
  .sort()
383
378
  .join(" ");
384
379
 
385
- debugLog(" startingRecordId = ", request.startingRecordId);
380
+ // c8 ignore next
381
+ doDebug && debugLog(" startingRecordId = ", request.startingRecordId);
386
382
 
387
383
  if (this.mDnsResponder) {
388
384
  for (const serverOnNetwork of this.mDnsResponder.registeredServers) {
389
- debugLog("Exploring server ", serverOnNetwork.serverName);
385
+ // c8 ignore next
386
+ doDebug && debugLog("Exploring server ", serverOnNetwork.serverName);
390
387
 
391
388
  if (serverOnNetwork.recordId <= request.startingRecordId) {
392
389
  continue;
@@ -404,10 +401,12 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
404
401
  }
405
402
  continue;
406
403
  }
407
- debugLog(" server ", serverOnNetwork.serverName, " found");
404
+ // c8 ignore next
405
+ doDebug && debugLog(" server ", serverOnNetwork.serverName, " found");
408
406
  servers.push(serverOnNetwork);
409
407
  if (servers.length === request.maxRecordsToReturn) {
410
- debugLog("max records to return reached", request.maxRecordsToReturn);
408
+ // c8 ignore next
409
+ doDebug && debugLog("max records to return reached", request.maxRecordsToReturn);
411
410
  break;
412
411
  }
413
412
  }
@@ -419,20 +418,23 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
419
418
  channel.send_response("MSG", response, message);
420
419
  }
421
420
 
422
-
423
- async #stopAnnouncedOnMulticastSubnet(conf: MdnsDiscoveryConfiguration): Promise<void> {
424
- const b = (conf as any).bonjourHolder as BonjourHolder;
421
+ async #stopAnnouncedOnMulticastSubnet(conf: MdnsDiscoveryConfigurationExtended): Promise<void> {
422
+ const b = conf.bonjourHolder;
423
+ if (!b) {
424
+ throw new Error("#stopAnnouncedOnMulticastSubnet: conf has no bonjourHolder");
425
+ }
425
426
  await b.stopAnnouncedOnMulticastSubnet();
426
- (conf as any).bonjourHolder = undefined;
427
+ conf.bonjourHolder = undefined;
427
428
  }
428
429
 
429
- async #announcedOnMulticastSubnet(conf: MdnsDiscoveryConfiguration, announcement: Announcement): Promise<void> {
430
+ async #announcedOnMulticastSubnet(conf: MdnsDiscoveryConfigurationExtended, announcement: Announcement): Promise<void> {
430
431
  const serviceConfig = announcementToServiceConfig(announcement);
431
432
 
432
- let b = (conf as any).bonjourHolder as BonjourHolder;
433
- if (b && b.serviceConfig) {
433
+ let b = conf.bonjourHolder;
434
+ if (b?.serviceConfig) {
434
435
  if (isSameService(b.serviceConfig, serviceConfig)) {
435
- debugLog("Configuration ", conf.mdnsServerName, " has not changed !");
436
+ // c8 ignore next
437
+ doDebug && debugLog("Configuration ", conf.mdnsServerName, " has not changed !");
436
438
  // nothing to do
437
439
  return;
438
440
  } else {
@@ -446,24 +448,24 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
446
448
  await this.#stopAnnouncedOnMulticastSubnet(conf);
447
449
  }
448
450
  b = new BonjourHolder();
449
- (conf as any).bonjourHolder = b;
451
+ conf.bonjourHolder = b;
450
452
  await b.announcedOnMulticastSubnet(announcement);
451
453
  }
452
454
  async #dealWithDiscoveryConfiguration(
453
- previousConfMap: Map<string, MdnsDiscoveryConfiguration>,
455
+ previousConfMap: Map<string, MdnsDiscoveryConfigurationExtended>,
454
456
  server1: RegisteredServer,
455
457
  serverInfo: ApplicationDescriptionOptions,
456
- discoveryConfiguration: MdnsDiscoveryConfiguration
458
+ discoveryConfiguration: MdnsDiscoveryConfigurationExtended
457
459
  ): Promise<StatusCode> {
458
460
  // mdnsServerName String The name of the Server when it is announced via mDNS.
459
- // See Part 12 for the details about mDNS. This string shall be
461
+ // See Part 12 for the details about mDNS. This string shall be
460
462
  // less than 64 bytes.
461
- // If not specified the first element of the serverNames array
463
+ // If not specified the first element of the serverNames array
462
464
  // is used (truncated to 63 bytes if necessary).
463
465
  // serverCapabilities [] String The set of Server capabilities supported by the Server.
464
466
  // A Server capability is a short identifier for a feature
465
467
  // The set of allowed Server capabilities are defined in Part 12.
466
- discoveryConfiguration.mdnsServerName ??= server1.serverNames![0].text;
468
+ discoveryConfiguration.mdnsServerName ??= server1.serverNames?.[0].text || null;
467
469
 
468
470
  serverInfo.discoveryUrls ??= [];
469
471
 
@@ -481,10 +483,11 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
481
483
 
482
484
  if (previousConfMap.has(discoveryConfiguration.mdnsServerName || "")) {
483
485
  // configuration already exists
484
- debugLog("Configuration ", discoveryConfiguration.mdnsServerName, " already exists !");
486
+ // c8 ignore next
487
+ doDebug && debugLog("Configuration ", discoveryConfiguration.mdnsServerName, " already exists !");
485
488
  const prevConf = previousConfMap.get(discoveryConfiguration.mdnsServerName || "");
486
489
  previousConfMap.delete(discoveryConfiguration.mdnsServerName || "");
487
- (discoveryConfiguration as any).bonjourHolder = (prevConf as any).bonjourHolder;
490
+ discoveryConfiguration.bonjourHolder = prevConf?.bonjourHolder;
488
491
  }
489
492
 
490
493
  // let's announce the server on the multicast DNS
@@ -492,16 +495,14 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
492
495
  return StatusCodes.Good;
493
496
  }
494
497
 
495
-
496
498
  /**
497
- *
498
- * @param server
499
+ *
500
+ * @param server
499
501
  * @param forced true :indicated if the LDS is forcing the Server to be seen as unregistered, false
500
502
  * when the offline comes from the server it self.
501
- * @returns
503
+ * @returns
502
504
  */
503
- async #internalRegisterServerOffline(server: RegisteredServerExtended, forced: boolean) {
504
-
505
+ async #internalRegisterServerOffline(server: RegisteredServerExtended, forced: boolean) {
505
506
  if (!server.serverUri) {
506
507
  throw new Error("serverUri is required");
507
508
  }
@@ -514,7 +515,8 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
514
515
  if (!serverToUnregister) {
515
516
  throw new Error("internal error");
516
517
  }
517
- debugLog(chalk.cyan("unregistering server : "), chalk.yellow(serverToUnregister?.serverUri));
518
+ // c8 ignore next
519
+ doDebug && debugLog(chalk.cyan("unregistering server : "), chalk.yellow(serverToUnregister?.serverUri));
518
520
  configurationResults = [];
519
521
 
520
522
  const discoveryConfigurations = serverToUnregister?.discoveryConfiguration || [];
@@ -524,27 +526,30 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
524
526
  configurationResults.push(StatusCodes.Good);
525
527
  }
526
528
  this.registeredServers.delete(key);
527
- serverToUnregister.isOnline= false;
529
+ serverToUnregister.isOnline = false;
528
530
  this.emit("onUnregisterServer", serverToUnregister, forced);
529
531
  }
530
532
  return configurationResults;
531
-
532
533
  }
533
534
  async #internalRegisterServerOnline(
534
535
  server: RegisteredServerExtended,
535
- discoveryConfigurations: MdnsDiscoveryConfiguration[]
536
+ discoveryConfigurations: MdnsDiscoveryConfigurationExtended[]
536
537
  ) {
537
538
  assert(discoveryConfigurations);
538
539
 
539
- const key = server.serverUri!;
540
+ if (!server.serverUri) {
541
+ throw new Error("#internalRegisterServerOnline: server.serverUri is required");
542
+ }
543
+ const key = server.serverUri;
540
544
 
541
545
  let configurationResults: StatusCode[] | null = null;
542
546
 
543
- debugLog(chalk.cyan(" registering server : "), chalk.yellow(server.serverUri));
547
+ // c8 ignore next
548
+ doDebug && debugLog(chalk.cyan(" registering server : "), chalk.yellow(server.serverUri));
544
549
 
545
550
  // prepare serverInfo which will be used by FindServers
546
551
  const serverInfo: ApplicationDescriptionOptions = {
547
- applicationName: server.serverNames![0], // which one shall we use ?
552
+ applicationName: server.serverNames?.[0], // which one shall we use ?
548
553
  applicationType: server.serverType,
549
554
  applicationUri: server.serverUri,
550
555
  discoveryUrls: server.discoveryUrls,
@@ -553,15 +558,17 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
553
558
  // XXX ?????? serverInfo.discoveryProfileUri = serverInfo.discoveryProfileUri;
554
559
  };
555
560
 
556
- const previousConfMap: Map<string, MdnsDiscoveryConfiguration> = new Map();
561
+ const previousConfMap: Map<string, MdnsDiscoveryConfigurationExtended> = new Map();
557
562
 
558
- // let check in the server has already been registed on this LDS
563
+ // let check in the server has already been registed on this LDS
559
564
  let firstTimeRegistration = true;
560
- if (this.registeredServers.has(key)) {
565
+ const previousServer = this.registeredServers.get(key);
566
+ if (previousServer) {
561
567
  // server already exists and must only be updated
562
- const previousServer = this.registeredServers.get(key)!;
563
- for (const conf of previousServer.discoveryConfiguration!) {
564
- previousConfMap.set(conf.mdnsServerName!, conf);
568
+ for (const conf of previousServer.discoveryConfiguration || []) {
569
+ if (conf.mdnsServerName) {
570
+ previousConfMap.set(conf.mdnsServerName, conf);
571
+ }
565
572
  }
566
573
  firstTimeRegistration = false;
567
574
  }
@@ -575,35 +582,27 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
575
582
  server.serverInfo = serverInfo;
576
583
  server.discoveryConfiguration = discoveryConfigurations;
577
584
 
578
-
579
585
  configurationResults = [];
580
586
  for (const conf of discoveryConfigurations) {
581
- const statusCode = await this.#dealWithDiscoveryConfiguration(
582
- previousConfMap,
583
- server,
584
- serverInfo,
585
- conf
586
- );
587
+ const statusCode = await this.#dealWithDiscoveryConfiguration(previousConfMap, server, serverInfo, conf);
587
588
  configurationResults.push(statusCode);
588
589
  }
589
590
  // now also unregister unprocessed
590
591
  if (previousConfMap.size !== 0) {
591
- debugLog(" Warning some conf need to be removed !");
592
+ // c8 ignore next
593
+ doDebug && debugLog(" Warning some conf need to be removed !");
592
594
  }
593
595
  return configurationResults;
594
-
595
596
  }
596
- // eslint-disable-next-line max-statements
597
597
  async #internalRegisterServer(
598
- RegisterServerXResponse: typeof RegisterServer2Response | typeof RegisterServerResponse,
598
+ RegisterServerXResponse: typeof RegisterServer2Response | typeof RegisterServerResponse,
599
599
  rawServer: RegisteredServer,
600
- discoveryConfigurations?: MdnsDiscoveryConfiguration[]
600
+ discoveryConfigurations?: MdnsDiscoveryConfigurationExtended[]
601
601
  ): Promise<Response> {
602
-
603
-
604
602
  // #region check parameter validity
605
603
  function sendError(statusCode: StatusCode): Response {
606
- debugLog(chalk.red("_on_RegisterServer(2)Request error"), statusCode.toString());
604
+ // c8 ignore next
605
+ doDebug && debugLog(chalk.red("_on_RegisterServer(2)Request error"), statusCode.toString());
607
606
  const response1 = new ServiceFault({
608
607
  responseHeader: { serviceResult: statusCode }
609
608
  });
@@ -614,15 +613,17 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
614
613
  return sendError(StatusCodes.BadShutdown);
615
614
  }
616
615
 
617
- const server = rawServer as any as RegisteredServerExtended;
616
+ const server = rawServer as unknown as RegisteredServerExtended;
618
617
 
619
618
  // check serverType is valid
620
619
  if (!_isValidServerType(server.serverType)) {
621
- debugLog("Invalid server Type", ApplicationType[server.serverType]);
620
+ // c8 ignore next
621
+ doDebug && debugLog("Invalid server Type", ApplicationType[server.serverType]);
622
622
  return sendError(StatusCodes.BadInvalidArgument);
623
623
  }
624
624
  if (!server.serverUri) {
625
- debugLog("Missing serverURI");
625
+ // c8 ignore next
626
+ doDebug && debugLog("Missing serverURI");
626
627
  return sendError(StatusCodes.BadInvalidArgument);
627
628
  }
628
629
  server.serverNames = server.serverNames || [];
@@ -636,7 +637,6 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
636
637
  return sendError(StatusCodes.BadDiscoveryUrlMissing);
637
638
  }
638
639
 
639
-
640
640
  // BadServerUriInvalid
641
641
  // TODO
642
642
  // #endregion
@@ -650,14 +650,11 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
650
650
  ];
651
651
  }
652
652
 
653
- const configurationResults = server?.isOnline ?
654
-
655
- await this.#internalRegisterServerOnline(server, discoveryConfigurations) :
656
- await this.#internalRegisterServerOffline(server, false);
653
+ const configurationResults = server?.isOnline
654
+ ? await this.#internalRegisterServerOnline(server, discoveryConfigurations)
655
+ : await this.#internalRegisterServerOffline(server, false);
657
656
 
658
-
659
- const response = new RegisterServerXResponse({
660
- });
657
+ const response = new RegisterServerXResponse({});
661
658
  if (response instanceof RegisterServer2Response) {
662
659
  response.configurationResults = configurationResults;
663
660
  }
@@ -682,4 +679,3 @@ function _isValidServerType(serverType: ApplicationType): boolean {
682
679
  }
683
680
  return false;
684
681
  }
685
-