node-opcua-local-discovery-server 2.138.1 → 2.139.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,24 +1,17 @@
1
1
  #!/usr/bin/env node
2
- const os = require("os");
3
- const path = require("path");
4
- const fs = require("fs");
5
- const yargs = require("yargs/yargs");
6
-
7
- const {
8
- assert,
9
- OPCUACertificateManager,
10
- OPCUADiscoveryServer,
11
- extractFullyQualifiedDomainName,
12
- makeApplicationUrn
13
- } = require("node-opcua");
14
-
15
- // Create a new instance of vantage.
16
- const Vorpal = require("vorpal");
17
- const vorpal_repl = require("vorpal-repl");
18
- const envPaths = require("env-paths");
19
- const { make_debugLog } = require("node-opcua-debug");
2
+ import os from "os";
3
+ import path from "path";
4
+ import fs from "fs";
5
+
6
+ import { assert, OPCUACertificateManager, OPCUADiscoveryServer, extractFullyQualifiedDomainName, makeApplicationUrn } from "node-opcua";
7
+ import { input, select } from "@inquirer/prompts";
8
+ import envPaths from "env-paths";
9
+ import { make_debugLog } from "node-opcua-debug";
20
10
 
21
11
  const paths = envPaths("node-opcua-local-discovery-server");
12
+
13
+ import yargs from "yargs/yargs.js";
14
+
22
15
  const configFolder = paths.config;
23
16
  const pkiFolder = path.join(configFolder, "PKI");
24
17
  const serverCertificateManager = new OPCUACertificateManager({
@@ -29,11 +22,11 @@ const serverCertificateManager = new OPCUACertificateManager({
29
22
  const debugLog = make_debugLog("LDS");
30
23
 
31
24
  async function getIpAddresses() {
32
- const ipAddresses = [];
25
+ const ipAddresses /*: string[] */= [];
33
26
  const networkInterfaces = os.networkInterfaces();
34
27
  for (const [interfaceName, interfaces] of Object.entries(networkInterfaces)) {
35
28
  let alias = 0;
36
- for (const iFace of interfaces) {
29
+ for (const iFace of interfaces || []) {
37
30
  if ("IPv4" !== iFace.family || iFace.internal !== false) {
38
31
  // skip over internal (i.e. 127.0.0.1) and non-ipv4 addresses
39
32
  continue;
@@ -72,7 +65,7 @@ const argv = yargs(process.argv)
72
65
  .default("force", false)
73
66
 
74
67
  .string("alternateHostname")
75
- .describe("alternateHostname ")
68
+ .describe("alternateHostname ", "alternate hostname to use in certificate")
76
69
  .string("hostname")
77
70
  .describe("hostname", "the hostname")
78
71
 
@@ -87,7 +80,15 @@ const argv = yargs(process.argv)
87
80
  .alias("f", "force")
88
81
  .alias("t", "tolerant")
89
82
 
90
- .help(true).argv;
83
+ .help(true).argv/* as {
84
+ port: number,
85
+ tolerant: boolean,
86
+ force: boolean,
87
+ applicationName: string,
88
+ hostname?: string,
89
+ alternateHostname?: string
90
+ }*/
91
+ ;
91
92
 
92
93
  const port = argv.port;
93
94
  const automaticallyAcceptUnknownCertificate = argv.tolerant;
@@ -135,13 +136,12 @@ console.log("applicationName ", applicationName);
135
136
  certificateFile,
136
137
  privateKeyFile,
137
138
  serverCertificateManager,
138
- automaticallyAcceptUnknownCertificate,
139
139
  serverInfo: {
140
140
  applicationUri
141
141
  },
142
142
  hostname,
143
- alternateHostname,
144
- noUserIdentityTokens: true
143
+ alternateHostname: argv.alternateHostname ? [argv.alternateHostname] : [],
144
+ // noUserIdentityTokens: true
145
145
  });
146
146
 
147
147
  try {
@@ -157,39 +157,57 @@ console.log("applicationName ", applicationName);
157
157
  console.log("rejected Folder ", discoveryServer.serverCertificateManager.rejectedFolder);
158
158
  console.log("trusted Folder ", discoveryServer.serverCertificateManager.trustedFolder);
159
159
 
160
- const vorpal = new Vorpal();
161
- vorpal
162
- .command("info")
163
- .description("display list of registered servers.")
164
- .action(function (args, callback) {
165
- this.log(discoveryServer.serverInfo.toString());
166
- // xx this.log(discoveryServer.endpoints[0]);
167
-
168
- {
169
- const servers = Object.keys(discoveryServer.registeredServers);
170
- this.log("number of registered servers : ", servers.length);
171
-
172
- for (const serverKey of servers) {
173
- const server = discoveryServer.registeredServers[serverKey];
174
- this.log("key =", serverKey);
175
- this.log(server.toString());
176
- }
177
- }
178
- {
179
- const server2 = Object.keys(discoveryServer.mDnsResponder.registeredServers);
180
- this.log("number of mNDS registered servers : ", server2.length);
181
- for (const serverKey of server2) {
182
- const server = discoveryServer.mDnsResponder.registeredServers[serverKey];
183
- this.log("key =", serverKey);
184
- this.log(server.toString());
185
- }
186
- }
187
-
188
- callback();
160
+
161
+ const commandPrompt = {
162
+ type: 'list',
163
+ name: 'direction',
164
+ message: 'select a command?',
165
+ choices: ['list servers', 'shutdown'],
166
+ };
167
+
168
+ while (true) {
169
+ const answer = await select({
170
+ choices: ['list servers', 'shutdown'],
171
+ message: 'select a command?',
189
172
  });
190
- vorpal.delimiter("local-discovery-server$").use(vorpal_repl).show();
173
+ console.log("answer", answer);
174
+ if (answer === "shutdown") {
175
+ break;
176
+ }
177
+ displayRegisteredServersInfo(discoveryServer);
178
+ }
179
+ await discoveryServer.shutdown();
180
+ console.log("discovery server stopped");
181
+ process.exit(0);
182
+
191
183
  } catch (err) {
192
184
  console.log(err.message);
193
185
  console.log(err);
194
186
  }
195
187
  })();
188
+
189
+ function displayRegisteredServersInfo(discoveryServer/*: OPCUADiscoveryServer*/) {
190
+ console.log(discoveryServer.serverInfo.toString());
191
+ // xx console.log(discoveryServer.endpoints[0]);
192
+
193
+ {
194
+ const servers = Object.keys(discoveryServer.registeredServers);
195
+ console.log("number of registered servers : ", servers.length);
196
+
197
+ for (const serverKey of servers) {
198
+ const server = discoveryServer.registeredServers[serverKey];
199
+ console.log("key =", serverKey);
200
+ console.log(server.toString());
201
+ }
202
+ }
203
+ if (discoveryServer.mDnsResponder) {
204
+
205
+ const server2 = Object.keys(discoveryServer.mDnsResponder.registeredServers);
206
+ console.log("number of mNDS registered servers : ", server2.length);
207
+ for (const serverKey of server2) {
208
+ const server = discoveryServer.mDnsResponder.registeredServers[serverKey];
209
+ console.log("key =", serverKey);
210
+ console.log(server.toString());
211
+ }
212
+ }
213
+ }
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "node-opcua-local-discovery-server",
3
- "version": "2.138.1",
3
+ "version": "2.139.0",
4
4
  "description": "pure nodejs OPCUA SDK - module local-discovery-server",
5
5
  "bin": {
6
- "lds": "./bin/local-discovery-server.js",
7
- "local-discovery-server": "./bin/local-discovery-server.js",
8
- "node-opcua-local-discovery-server": "./bin/local-discovery-server.js"
6
+ "lds": "./bin/local-discovery-server.mjs",
7
+ "local-discovery-server": "./bin/local-discovery-server.mjs",
8
+ "node-opcua-local-discovery-server": "./bin/local-discovery-server.mjs"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint source/**/*.ts",
12
12
  "test": "echo no test",
13
+ "clean": "npx rimraf -g node_modules dist *.tsbuildinfo tmp",
13
14
  "build-docker": "docker build . -t lds"
14
15
  },
15
16
  "author": "Etienne Rossignon",
@@ -27,14 +28,14 @@
27
28
  "internet of things"
28
29
  ],
29
30
  "dependencies": {
31
+ "@inquirer/prompts": "7.2.0",
30
32
  "env-paths": "2.2.1",
31
- "node-opcua": "2.138.1",
32
- "node-opcua-debug": "2.133.0",
33
- "vorpal": "^1.12.0",
34
- "vorpal-repl": "^1.1.8",
33
+ "node-opcua": "2.139.0",
34
+ "node-opcua-debug": "2.139.0",
35
+ "tsx": "^4.19.2",
35
36
  "yargs": "15.4.1"
36
37
  },
37
38
  "homepage": "http://node-opcua.github.io/",
38
- "gitHead": "9a9b6ac2281306c90fc0ef55e93c8b773f9edcd2",
39
+ "gitHead": "b7a01d31c7602d323e60a5f4a54428199a266f29",
39
40
  "files": []
40
41
  }