node-opcua-server 2.53.0 → 2.56.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +20 -20
  2. package/dist/base_server.js +12 -14
  3. package/dist/base_server.js.map +1 -1
  4. package/dist/factory.d.ts +4 -2
  5. package/dist/factory.js.map +1 -1
  6. package/dist/history_server_capabilities.js.map +1 -1
  7. package/dist/i_server_side_publish_engine.d.ts +1 -1
  8. package/dist/i_server_side_publish_engine.js +1 -1
  9. package/dist/i_server_side_publish_engine.js.map +1 -1
  10. package/dist/monitored_item.d.ts +3 -0
  11. package/dist/monitored_item.js +7 -14
  12. package/dist/monitored_item.js.map +1 -1
  13. package/dist/node_sampler.js +1 -1
  14. package/dist/node_sampler.js.map +1 -1
  15. package/dist/opcua_server.d.ts +29 -44
  16. package/dist/opcua_server.js +218 -262
  17. package/dist/opcua_server.js.map +1 -1
  18. package/dist/queue.js +1 -0
  19. package/dist/queue.js.map +1 -1
  20. package/dist/register_server_manager.d.ts +4 -1
  21. package/dist/register_server_manager.js +5 -5
  22. package/dist/register_server_manager.js.map +1 -1
  23. package/dist/register_server_manager_hidden.d.ts +1 -1
  24. package/dist/register_server_manager_hidden.js.map +1 -1
  25. package/dist/register_server_manager_mdns_only.d.ts +4 -1
  26. package/dist/register_server_manager_mdns_only.js +1 -1
  27. package/dist/register_server_manager_mdns_only.js.map +1 -1
  28. package/dist/server_capabilities.js.map +1 -1
  29. package/dist/server_end_point.d.ts +4 -1
  30. package/dist/server_end_point.js +10 -11
  31. package/dist/server_end_point.js.map +1 -1
  32. package/dist/server_engine.d.ts +11 -7
  33. package/dist/server_engine.js +72 -74
  34. package/dist/server_engine.js.map +1 -1
  35. package/dist/server_publish_engine.d.ts +4 -1
  36. package/dist/server_publish_engine.js +5 -5
  37. package/dist/server_publish_engine.js.map +1 -1
  38. package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +2 -2
  39. package/dist/server_publish_engine_for_orphan_subscriptions.js.map +1 -1
  40. package/dist/server_session.d.ts +1 -1
  41. package/dist/server_session.js +24 -29
  42. package/dist/server_session.js.map +1 -1
  43. package/dist/server_subscription.d.ts +3 -1
  44. package/dist/server_subscription.js +6 -6
  45. package/dist/server_subscription.js.map +1 -1
  46. package/dist/sessions_compatible_for_transfer.js +2 -1
  47. package/dist/sessions_compatible_for_transfer.js.map +1 -1
  48. package/dist/validate_filter.js +4 -7
  49. package/dist/validate_filter.js.map +1 -1
  50. package/package.json +45 -44
  51. package/source/base_server.ts +19 -22
  52. package/source/factory.ts +5 -2
  53. package/source/history_server_capabilities.ts +3 -4
  54. package/source/i_channel_data.ts +4 -8
  55. package/source/i_register_server_manager.ts +0 -3
  56. package/source/i_server_side_publish_engine.ts +5 -6
  57. package/source/i_socket_data.ts +1 -1
  58. package/source/index.ts +14 -14
  59. package/source/monitored_item.ts +32 -44
  60. package/source/node_sampler.ts +82 -82
  61. package/source/opcua_server.ts +326 -357
  62. package/source/queue.ts +6 -7
  63. package/source/register_server_manager.ts +35 -23
  64. package/source/register_server_manager_hidden.ts +8 -10
  65. package/source/register_server_manager_mdns_only.ts +8 -13
  66. package/source/server_capabilities.ts +0 -5
  67. package/source/server_end_point.ts +28 -30
  68. package/source/server_engine.ts +122 -122
  69. package/source/server_publish_engine.ts +24 -21
  70. package/source/server_publish_engine_for_orphan_subscriptions.ts +26 -26
  71. package/source/server_session.ts +44 -49
  72. package/source/server_subscription.ts +23 -23
  73. package/source/sessions_compatible_for_transfer.ts +26 -25
  74. package/source/validate_filter.ts +8 -22
  75. package/test_helpers/create_certificates.js +1 -1
@@ -1,4 +1,7 @@
1
1
  /// <reference types="node" />
2
+ /**
3
+ * @module node-opcua-server
4
+ */
2
5
  import { EventEmitter } from "events";
3
6
  import { OPCUACertificateManager } from "node-opcua-certificate-manager";
4
7
  import { Certificate, PrivateKeyPEM } from "node-opcua-crypto";
@@ -86,7 +89,7 @@ export declare class OPCUAServerEndPoint extends EventEmitter implements ServerS
86
89
  private _channels;
87
90
  private _server?;
88
91
  private _endpoints;
89
- private _listen_callback;
92
+ private _listen_callback?;
90
93
  private _started;
91
94
  private _counter;
92
95
  private _policy_deduplicator;
@@ -5,10 +5,10 @@ exports.OPCUAServerEndPoint = void 0;
5
5
  * @module node-opcua-server
6
6
  */
7
7
  // tslint:disable:no-console
8
- const async = require("async");
9
- const chalk = require("chalk");
10
8
  const events_1 = require("events");
11
9
  const net = require("net");
10
+ const chalk = require("chalk");
11
+ const async = require("async");
12
12
  const node_opcua_assert_1 = require("node-opcua-assert");
13
13
  const node_opcua_crypto_1 = require("node-opcua-crypto");
14
14
  const node_opcua_debug_1 = require("node-opcua-debug");
@@ -136,7 +136,7 @@ class OPCUAServerEndPoint extends events_1.EventEmitter {
136
136
  (0, node_opcua_assert_1.assert)(this._endpoints.length === 0, "endpoints must have been deleted");
137
137
  this._endpoints = [];
138
138
  this._server = undefined;
139
- this._listen_callback = null;
139
+ this._listen_callback = undefined;
140
140
  this.removeAllListeners();
141
141
  }
142
142
  toString() {
@@ -418,18 +418,17 @@ class OPCUAServerEndPoint extends events_1.EventEmitter {
418
418
  return Object.keys(this._channels).length;
419
419
  }
420
420
  _dump_statistics() {
421
- const self = this;
422
- self._server.getConnections((err, count) => {
421
+ this._server.getConnections((err, count) => {
423
422
  debugLog(chalk.cyan("CONCURRENT CONNECTION = "), count);
424
423
  });
425
- debugLog(chalk.cyan("MAX CONNECTIONS = "), self._server.maxConnections);
424
+ debugLog(chalk.cyan("MAX CONNECTIONS = "), this._server.maxConnections);
426
425
  }
427
426
  _setup_server() {
428
427
  (0, node_opcua_assert_1.assert)(!this._server);
429
428
  this._server = net.createServer({ pauseOnConnect: true }, this._on_client_connection.bind(this));
430
429
  // xx console.log(" Server with max connections ", self.maxConnections);
431
430
  this._server.maxConnections = this.maxConnections + 1; // plus one extra
432
- this._listen_callback = null;
431
+ this._listen_callback = undefined;
433
432
  this._server
434
433
  .on("connection", (socket) => {
435
434
  // istanbul ignore next
@@ -511,7 +510,7 @@ class OPCUAServerEndPoint extends events_1.EventEmitter {
511
510
  // e.g HEL/ACK and OpenSecureChannel may not have been received yet
512
511
  // as they will need to be interrupted when OPCUAServerEndPoint is closed
513
512
  (0, node_opcua_assert_1.assert)(this._started, "OPCUAServerEndPoint must be started");
514
- (0, node_opcua_assert_1.assert)(!this._channels.hasOwnProperty(channel.hashKey), " channel already preregistered!");
513
+ (0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(this._channels, channel.hashKey), " channel already preregistered!");
515
514
  this._channels[channel.hashKey] = channel;
516
515
  channel._unpreregisterChannelEvent = () => {
517
516
  debugLog("Channel received an abort event during the preregistration phase");
@@ -563,10 +562,10 @@ class OPCUAServerEndPoint extends events_1.EventEmitter {
563
562
  */
564
563
  _unregisterChannel(channel) {
565
564
  debugLog("_un-registerChannel channel.hashKey", channel.hashKey);
566
- if (!this._channels.hasOwnProperty(channel.hashKey)) {
565
+ if (!Object.prototype.hasOwnProperty.call(this._channels, channel.hashKey)) {
567
566
  return;
568
567
  }
569
- (0, node_opcua_assert_1.assert)(this._channels.hasOwnProperty(channel.hashKey), "channel is not registered");
568
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(this._channels, channel.hashKey), "channel is not registered");
570
569
  /**
571
570
  * @event closeChannel
572
571
  * @param channel
@@ -587,7 +586,7 @@ class OPCUAServerEndPoint extends events_1.EventEmitter {
587
586
  _end_listen(err) {
588
587
  (0, node_opcua_assert_1.assert)(typeof this._listen_callback === "function");
589
588
  this._listen_callback(err);
590
- this._listen_callback = null;
589
+ this._listen_callback = undefined;
591
590
  }
592
591
  /**
593
592
  * shutdown_channel
@@ -1 +1 @@
1
- {"version":3,"file":"server_end_point.js","sourceRoot":"","sources":["../source/server_end_point.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server_end_point.js","sourceRoot":"","sources":["../source/server_end_point.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  /// <reference types="node" />
2
+ /**
3
+ * @module node-opcua-server
4
+ */
2
5
  import { EventEmitter } from "events";
3
- import { AddressSpace, ISessionContext } from "node-opcua-address-space";
6
+ import { AddressSpace, ISessionContext, ContinuationData } from "node-opcua-address-space";
4
7
  import { DataValue } from "node-opcua-data-value";
5
8
  import { ServerDiagnosticsSummaryDataType, ServerState, ServerStatusDataType } from "node-opcua-common";
6
9
  import { AttributeIds, LocalizedTextLike } from "node-opcua-data-model";
7
10
  import { NodeId, NodeIdLike } from "node-opcua-nodeid";
8
11
  import { BrowseResult } from "node-opcua-service-browse";
9
12
  import { ReadRequest, TimestampsToReturn } from "node-opcua-service-read";
10
- import { TransferResult } from "node-opcua-service-subscription";
11
13
  import { CreateSubscriptionRequestLike } from "node-opcua-client";
12
14
  import { ObjectRegistry } from "node-opcua-object-registry";
15
+ import { TransferResult } from "node-opcua-service-subscription";
13
16
  import { ApplicationDescription } from "node-opcua-service-endpoints";
14
17
  import { HistoryReadRequest, HistoryReadResult, HistoryReadValueId } from "node-opcua-service-history";
15
18
  import { StatusCode } from "node-opcua-status-code";
@@ -18,6 +21,7 @@ import { HistoryServerCapabilities, HistoryServerCapabilitiesOptions } from "./h
18
21
  import { ServerCapabilities, ServerCapabilitiesOptions } from "./server_capabilities";
19
22
  import { ServerSession } from "./server_session";
20
23
  import { Subscription } from "./server_subscription";
24
+ import { OPCUAServerOptions } from "./opcua_server";
21
25
  export declare type StringGetter = () => string;
22
26
  export interface ServerEngineOptions {
23
27
  applicationUri: string | StringGetter;
@@ -51,7 +55,7 @@ export declare class ServerEngine extends EventEmitter {
51
55
  private _sessions;
52
56
  private _closedSessions;
53
57
  private _orphanPublishEngine?;
54
- private _shutdownTask;
58
+ private _shutdownTasks;
55
59
  private _applicationUri;
56
60
  private _expectedShutdownTime;
57
61
  private _serverStatus;
@@ -65,7 +69,7 @@ export declare class ServerEngine extends EventEmitter {
65
69
  * register a function that will be called when the server will perform its shut down.
66
70
  * @method registerShutdownTask
67
71
  */
68
- registerShutdownTask(task: any): void;
72
+ registerShutdownTask(task: (this: ServerEngine) => void): void;
69
73
  /**
70
74
  * @method shutdown
71
75
  */
@@ -134,7 +138,7 @@ export declare class ServerEngine extends EventEmitter {
134
138
  * @param options.nodeset_filename {String} - [option](default : 'mini.Node.Set2.xml' )
135
139
  * @param callback
136
140
  */
137
- initialize(options: any, callback: any): void;
141
+ initialize(options: OPCUAServerOptions, callback: () => void): void;
138
142
  /**
139
143
  *
140
144
  * @method browseSingleNode
@@ -210,7 +214,7 @@ export declare class ServerEngine extends EventEmitter {
210
214
  /**
211
215
  *
212
216
  */
213
- historyReadSingleNode(context: ISessionContext, nodeId: NodeId, attributeId: AttributeIds, historyReadDetails: ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, timestampsToReturn: TimestampsToReturn, callback: (err: Error | null, results?: HistoryReadResult) => void): void;
217
+ historyReadSingleNode(context: ISessionContext, nodeId: NodeId, attributeId: AttributeIds, historyReadDetails: ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, timestampsToReturn: TimestampsToReturn, continuationData: ContinuationData, callback: (err: Error | null, results?: HistoryReadResult) => void): void;
214
218
  /**
215
219
  *
216
220
  * @method historyRead
@@ -295,7 +299,7 @@ export declare class ServerEngine extends EventEmitter {
295
299
  */
296
300
  refreshValues(nodesToRefresh: ReadValueId[] | HistoryReadValueId[], maxAge: number, callback: (err: Error | null, dataValues?: DataValue[]) => void): void;
297
301
  private _exposeSubscriptionDiagnostics;
298
- private _unexposeSubscriptionDiagnostics;
302
+ protected _unexposeSubscriptionDiagnostics(subscription: Subscription): void;
299
303
  /**
300
304
  * create a new subscription
301
305
  * @return {Subscription}
@@ -13,10 +13,9 @@ exports.ServerEngine = void 0;
13
13
  /**
14
14
  * @module node-opcua-server
15
15
  */
16
- // tslint:disable:no-console
16
+ const events_1 = require("events");
17
17
  const async = require("async");
18
18
  const chalk = require("chalk");
19
- const events_1 = require("events");
20
19
  const node_opcua_assert_1 = require("node-opcua-assert");
21
20
  const node_opcua_address_space_1 = require("node-opcua-address-space");
22
21
  const nodeJS_1 = require("node-opcua-address-space/nodeJS");
@@ -25,13 +24,13 @@ const node_opcua_common_1 = require("node-opcua-common");
25
24
  const node_opcua_data_model_1 = require("node-opcua-data-model");
26
25
  const node_opcua_nodeid_1 = require("node-opcua-nodeid");
27
26
  const node_opcua_service_read_1 = require("node-opcua-service-read");
28
- const node_opcua_service_subscription_1 = require("node-opcua-service-subscription");
29
27
  const node_opcua_constants_1 = require("node-opcua-constants");
30
28
  const node_opcua_date_time_1 = require("node-opcua-date-time");
31
29
  const node_opcua_debug_1 = require("node-opcua-debug");
32
30
  const node_opcua_nodesets_1 = require("node-opcua-nodesets");
33
31
  const node_opcua_object_registry_1 = require("node-opcua-object-registry");
34
32
  const node_opcua_service_call_1 = require("node-opcua-service-call");
33
+ const node_opcua_service_subscription_1 = require("node-opcua-service-subscription");
35
34
  const node_opcua_service_endpoints_1 = require("node-opcua-service-endpoints");
36
35
  const node_opcua_service_history_1 = require("node-opcua-service-history");
37
36
  const node_opcua_status_code_1 = require("node-opcua-status-code");
@@ -45,7 +44,6 @@ const server_publish_engine_for_orphan_subscriptions_1 = require("./server_publi
45
44
  const server_session_1 = require("./server_session");
46
45
  const server_subscription_1 = require("./server_subscription");
47
46
  const sessions_compatible_for_transfer_1 = require("./sessions_compatible_for_transfer");
48
- const node_opcua_address_space_2 = require("node-opcua-address-space");
49
47
  const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
50
48
  const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
51
49
  const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
@@ -65,7 +63,7 @@ function setSubscriptionDurable(inputArguments, context, callback) {
65
63
  // https://reference.opcfoundation.org/v104/Core/docs/Part4/6.8/
66
64
  (0, node_opcua_assert_1.assert)(Array.isArray(inputArguments));
67
65
  (0, node_opcua_assert_1.assert)(typeof callback === "function");
68
- (0, node_opcua_assert_1.assert)(context.hasOwnProperty("session"), " expecting a session id in the context object");
66
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(context, "session"), " expecting a session id in the context object");
69
67
  const session = context.session;
70
68
  if (!session) {
71
69
  return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
@@ -134,7 +132,7 @@ function setSubscriptionDurable(inputArguments, context, callback) {
134
132
  function getMonitoredItemsId(inputArguments, context, callback) {
135
133
  (0, node_opcua_assert_1.assert)(Array.isArray(inputArguments));
136
134
  (0, node_opcua_assert_1.assert)(typeof callback === "function");
137
- (0, node_opcua_assert_1.assert)(context.hasOwnProperty("session"), " expecting a session id in the context object");
135
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(context, "session"), " expecting a session id in the context object");
138
136
  const session = context.session;
139
137
  if (!session) {
140
138
  return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
@@ -230,10 +228,10 @@ class ServerEngine extends events_1.EventEmitter {
230
228
  this.historyServerCapabilities = new history_server_capabilities_1.HistoryServerCapabilities(options.historyServerCapabilities);
231
229
  // --------------------------------------------------- serverDiagnosticsSummary extension Object
232
230
  this.serverDiagnosticsSummary = new node_opcua_common_1.ServerDiagnosticsSummaryDataType();
233
- (0, node_opcua_assert_1.assert)(this.serverDiagnosticsSummary.hasOwnProperty("currentSessionCount"));
231
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(this.serverDiagnosticsSummary, "currentSessionCount"));
234
232
  // note spelling is different for serverDiagnosticsSummary.currentSubscriptionCount
235
233
  // and sessionDiagnostics.currentSubscriptionsCount ( with an s)
236
- (0, node_opcua_assert_1.assert)(this.serverDiagnosticsSummary.hasOwnProperty("currentSubscriptionCount"));
234
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(this.serverDiagnosticsSummary, "currentSubscriptionCount"));
237
235
  this.serverDiagnosticsSummary.__defineGetter__("currentSubscriptionCount", () => {
238
236
  // currentSubscriptionCount returns the total number of subscriptions
239
237
  // that are currently active on all sessions
@@ -246,7 +244,7 @@ class ServerEngine extends events_1.EventEmitter {
246
244
  this._internalState = "creating";
247
245
  this.setServerState(node_opcua_common_1.ServerState.NoConfiguration);
248
246
  this.addressSpace = null;
249
- this._shutdownTask = [];
247
+ this._shutdownTasks = [];
250
248
  this._applicationUri = "";
251
249
  if (typeof options.applicationUri === "function") {
252
250
  this.__defineGetter__("_applicationUri", options.applicationUri);
@@ -274,7 +272,7 @@ class ServerEngine extends events_1.EventEmitter {
274
272
  this._orphanPublishEngine.dispose();
275
273
  this._orphanPublishEngine = undefined;
276
274
  }
277
- this._shutdownTask = [];
275
+ this._shutdownTasks = [];
278
276
  this._serverStatus = null;
279
277
  this._internalState = "disposed";
280
278
  this.removeAllListeners();
@@ -295,7 +293,7 @@ class ServerEngine extends events_1.EventEmitter {
295
293
  */
296
294
  registerShutdownTask(task) {
297
295
  (0, node_opcua_assert_1.assert)(typeof task === "function");
298
- this._shutdownTask.push(task);
296
+ this._shutdownTasks.push(task);
299
297
  }
300
298
  /**
301
299
  * @method shutdown
@@ -321,9 +319,9 @@ class ServerEngine extends events_1.EventEmitter {
321
319
  (0, node_opcua_assert_1.assert)(this.currentSessionCount === 0);
322
320
  // all subscriptions must have been terminated
323
321
  (0, node_opcua_assert_1.assert)(this.currentSubscriptionCount === 0, "all subscriptions must have been terminated");
324
- this._shutdownTask.push(shutdownAndDisposeAddressSpace);
322
+ this._shutdownTasks.push(shutdownAndDisposeAddressSpace);
325
323
  // perform registerShutdownTask
326
- for (const task of this._shutdownTask) {
324
+ for (const task of this._shutdownTasks) {
327
325
  task.call(this);
328
326
  }
329
327
  this.dispose();
@@ -492,6 +490,7 @@ class ServerEngine extends events_1.EventEmitter {
492
490
  // register namespace 1 (our namespace);
493
491
  const serverNamespace = this.addressSpace.registerNamespace(this.serverNamespaceUrn);
494
492
  (0, node_opcua_assert_1.assert)(serverNamespace.index === 1);
493
+ // eslint-disable-next-line max-statements
495
494
  (0, nodeJS_1.generateAddressSpace)(this.addressSpace, options.nodeset_filename, () => {
496
495
  /* istanbul ignore next */
497
496
  if (!this.addressSpace) {
@@ -620,6 +619,7 @@ class ServerEngine extends events_1.EventEmitter {
620
619
  bindStandardScalar(node_opcua_constants_1.VariableIds.Server_Auditing, node_opcua_variant_1.DataType.Boolean, () => {
621
620
  return this.isAuditing;
622
621
  });
622
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
623
623
  const engine = this;
624
624
  const makeNotReadableIfEnabledFlagIsFalse = (variable) => {
625
625
  const originalIsReadable = variable.isReadable;
@@ -894,7 +894,7 @@ class ServerEngine extends events_1.EventEmitter {
894
894
  prepareServerDiagnostics();
895
895
  this._internalState = "initialized";
896
896
  this.setServerState(node_opcua_common_1.ServerState.Running);
897
- setImmediate(callback);
897
+ setImmediate(() => callback());
898
898
  });
899
899
  }
900
900
  /**
@@ -1058,7 +1058,7 @@ class ServerEngine extends events_1.EventEmitter {
1058
1058
  return callback(err2);
1059
1059
  }
1060
1060
  const performWrite = (writeValue, inner_callback) => {
1061
- (0, node_opcua_address_space_2.resolveOpaqueOnAddressSpace)(this.addressSpace, writeValue.value.value)
1061
+ (0, node_opcua_address_space_1.resolveOpaqueOnAddressSpace)(this.addressSpace, writeValue.value.value)
1062
1062
  .then(() => {
1063
1063
  this.writeSingleNode(context, writeValue, inner_callback);
1064
1064
  })
@@ -1074,7 +1074,7 @@ class ServerEngine extends events_1.EventEmitter {
1074
1074
  /**
1075
1075
  *
1076
1076
  */
1077
- historyReadSingleNode(context, nodeId, attributeId, historyReadDetails, timestampsToReturn, callback) {
1077
+ historyReadSingleNode(context, nodeId, attributeId, historyReadDetails, timestampsToReturn, continuationData, callback) {
1078
1078
  if (timestampsToReturn === node_opcua_service_read_1.TimestampsToReturn.Invalid) {
1079
1079
  callback(null, new node_opcua_service_history_1.HistoryReadResult({
1080
1080
  statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid
@@ -1084,7 +1084,7 @@ class ServerEngine extends events_1.EventEmitter {
1084
1084
  (0, node_opcua_assert_1.assert)(context instanceof node_opcua_address_space_1.SessionContext);
1085
1085
  this._historyReadSingleNode(context, new node_opcua_service_history_1.HistoryReadValueId({
1086
1086
  nodeId
1087
- }), historyReadDetails, timestampsToReturn, callback);
1087
+ }), historyReadDetails, timestampsToReturn, continuationData, callback);
1088
1088
  }
1089
1089
  /**
1090
1090
  *
@@ -1106,67 +1106,61 @@ class ServerEngine extends events_1.EventEmitter {
1106
1106
  (0, node_opcua_assert_1.assert)(typeof callback === "function");
1107
1107
  const timestampsToReturn = historyReadRequest.timestampsToReturn;
1108
1108
  const historyReadDetails = historyReadRequest.historyReadDetails;
1109
- const nodesToRead = historyReadRequest.nodesToRead || [];
1109
+ const releaseContinuationPoints = historyReadRequest.releaseContinuationPoints;
1110
1110
  (0, node_opcua_assert_1.assert)(historyReadDetails instanceof node_opcua_service_history_1.HistoryReadDetails);
1111
+ // ReadAnnotationDataDetails | ReadAtTimeDetails | ReadEventDetails | ReadProcessedDetails | ReadRawModifiedDetails;
1112
+ const nodesToRead = historyReadRequest.nodesToRead || [];
1111
1113
  (0, node_opcua_assert_1.assert)(Array.isArray(nodesToRead));
1112
- // special cases with ReadProcessedDetails
1113
- const historyData = [];
1114
+ const _q = (m) => __awaiter(this, void 0, void 0, function* () {
1115
+ return new Promise((resolve) => {
1116
+ const continuationPoint = m.nodeToRead.continuationPoint;
1117
+ this._historyReadSingleNode(context, m.nodeToRead, m.processDetail, timestampsToReturn, { continuationPoint, releaseContinuationPoints /**, index = ??? */ }, (err, result) => {
1118
+ if (err && !result) {
1119
+ errorLog("Internal error", err.message);
1120
+ result = new node_opcua_service_history_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
1121
+ }
1122
+ resolve(result);
1123
+ });
1124
+ });
1125
+ });
1114
1126
  if (historyReadDetails instanceof node_opcua_types_1.ReadProcessedDetails) {
1115
1127
  //
1116
1128
  if (!historyReadDetails.aggregateType || historyReadDetails.aggregateType.length !== nodesToRead.length) {
1117
1129
  return callback(null, [new node_opcua_service_history_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadInvalidArgument })]);
1118
1130
  }
1119
- // const map: Map<string, M> = new Map();
1120
- // for (let i = 0; i < nodesToRead.length; i++) {
1121
- // const nodeToRead = nodesToRead[i];
1122
- // const aggregateType = historyReadDetails.aggregateType[i];
1123
- // const key = nodesToRead.toString();
1124
- // if (!map.has(key)) {
1125
- // map.set(key, {
1126
- // nodeToRead,
1127
- // indexes: [],
1128
- // processDetail: new ReadProcessedDetails({ ...historyReadDetails, aggregateType: [] })
1129
- // });
1130
- // }
1131
- // map.get(key)!.processDetail.aggregateType?.push(aggregateType);
1132
- // map.get(key)!.indexes.push(i);
1133
- // }
1134
- // const m = [...map.values()];
1135
- const elements = [];
1136
- for (let i = 0; i < nodesToRead.length; i++) {
1137
- const nodeToRead = nodesToRead[i];
1138
- const aggregateType = historyReadDetails.aggregateType[i];
1139
- elements.push({
1140
- indexes: [i],
1141
- nodeToRead,
1142
- processDetail: new node_opcua_types_1.ReadProcessedDetails(Object.assign(Object.assign({}, historyReadDetails), { aggregateType: [aggregateType] }))
1143
- });
1131
+ const promises = [];
1132
+ let index = 0;
1133
+ for (const nodeToRead of nodesToRead) {
1134
+ const aggregateType = historyReadDetails.aggregateType[index];
1135
+ const processDetail = new node_opcua_types_1.ReadProcessedDetails(Object.assign(Object.assign({}, historyReadDetails), { aggregateType: [aggregateType] }));
1136
+ promises.push(_q({ nodeToRead, processDetail, index }));
1137
+ index++;
1144
1138
  }
1145
- async.forEach(elements, (m, _local_callback) => {
1146
- this._historyReadSingleNode(context, m.nodeToRead, m.processDetail, timestampsToReturn, (err, result) => {
1139
+ Promise.all(promises).then((results) => {
1140
+ callback(null, results);
1141
+ });
1142
+ return;
1143
+ }
1144
+ const _r = (nodeToRead, index) => __awaiter(this, void 0, void 0, function* () {
1145
+ const continuationPoint = nodeToRead.continuationPoint;
1146
+ return new Promise((resolve, reject) => {
1147
+ this._historyReadSingleNode(context, nodeToRead, historyReadDetails, timestampsToReturn, { continuationPoint, releaseContinuationPoints, index }, (err, result) => {
1147
1148
  if (err && !result) {
1148
1149
  result = new node_opcua_service_history_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
1149
1150
  }
1150
- historyData.push(result);
1151
- _local_callback(null);
1151
+ resolve(result);
1152
+ // it's not guaranteed that the historical read process is really asynchronous
1152
1153
  });
1153
- }, (err) => {
1154
- callback(err, historyData);
1155
1154
  });
1156
- return;
1155
+ });
1156
+ const promises = [];
1157
+ let index = 0;
1158
+ for (const nodeToRead of nodesToRead) {
1159
+ promises.push(_r(nodeToRead, index));
1160
+ index++;
1157
1161
  }
1158
- async.eachSeries(nodesToRead, (nodeToRead, cbNode) => {
1159
- this._historyReadSingleNode(context, nodeToRead, historyReadDetails, timestampsToReturn, (err, result) => {
1160
- if (err && !result) {
1161
- result = new node_opcua_service_history_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
1162
- }
1163
- historyData.push(result);
1164
- cbNode();
1165
- // it's not guaranteed that the historical read process is really asynchronous
1166
- });
1167
- }, (err) => {
1168
- (0, node_opcua_assert_1.assert)(historyData.length === nodesToRead.length);
1169
- callback(err || null, historyData);
1162
+ Promise.all(promises).then((results) => {
1163
+ callback(null, results);
1170
1164
  });
1171
1165
  }
1172
1166
  getOldestUnactivatedSession() {
@@ -1493,12 +1487,12 @@ class ServerEngine extends events_1.EventEmitter {
1493
1487
  * @return {Subscription}
1494
1488
  */
1495
1489
  _createSubscriptionOnSession(session, request) {
1496
- (0, node_opcua_assert_1.assert)(request.hasOwnProperty("requestedPublishingInterval")); // Duration
1497
- (0, node_opcua_assert_1.assert)(request.hasOwnProperty("requestedLifetimeCount")); // Counter
1498
- (0, node_opcua_assert_1.assert)(request.hasOwnProperty("requestedMaxKeepAliveCount")); // Counter
1499
- (0, node_opcua_assert_1.assert)(request.hasOwnProperty("maxNotificationsPerPublish")); // Counter
1500
- (0, node_opcua_assert_1.assert)(request.hasOwnProperty("publishingEnabled")); // Boolean
1501
- (0, node_opcua_assert_1.assert)(request.hasOwnProperty("priority")); // Byte
1490
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(request, "requestedPublishingInterval")); // Duration
1491
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(request, "requestedLifetimeCount")); // Counter
1492
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(request, "requestedMaxKeepAliveCount")); // Counter
1493
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(request, "maxNotificationsPerPublish")); // Counter
1494
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(request, "publishingEnabled")); // Boolean
1495
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(request, "priority")); // Byte
1502
1496
  // adjust publishing parameters
1503
1497
  const publishingInterval = request.requestedPublishingInterval || 0;
1504
1498
  const maxKeepAliveCount = request.requestedMaxKeepAliveCount || 0;
@@ -1519,6 +1513,7 @@ class ServerEngine extends events_1.EventEmitter {
1519
1513
  this._exposeSubscriptionDiagnostics(subscription);
1520
1514
  (0, node_opcua_assert_1.assert)(subscription.publishEngine === session.publishEngine);
1521
1515
  session.publishEngine.add_subscription(subscription);
1516
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
1522
1517
  const engine = this;
1523
1518
  subscription.once("terminated", function () {
1524
1519
  engine._unexposeSubscriptionDiagnostics(this);
@@ -1526,11 +1521,11 @@ class ServerEngine extends events_1.EventEmitter {
1526
1521
  return subscription;
1527
1522
  }
1528
1523
  __findNode(nodeId) {
1529
- var _a, _b;
1524
+ var _a;
1530
1525
  if (nodeId.namespace >= (((_a = this.addressSpace) === null || _a === void 0 ? void 0 : _a.getNamespaceArray().length) || 0)) {
1531
1526
  return null;
1532
1527
  }
1533
- const namespace = (_b = this.addressSpace) === null || _b === void 0 ? void 0 : _b.getNamespace(nodeId.namespace);
1528
+ const namespace = this.addressSpace.getNamespace(nodeId.namespace);
1534
1529
  return namespace.findNode2(nodeId);
1535
1530
  }
1536
1531
  _readSingleNode(context, nodeToRead, timestampsToReturn) {
@@ -1561,7 +1556,7 @@ class ServerEngine extends events_1.EventEmitter {
1561
1556
  return dataValue;
1562
1557
  }
1563
1558
  }
1564
- _historyReadSingleNode(context, nodeToRead, historyReadDetails, timestampsToReturn, callback) {
1559
+ _historyReadSingleNode(context, nodeToRead, historyReadDetails, timestampsToReturn, continuationData, callback) {
1565
1560
  (0, node_opcua_assert_1.assert)(context instanceof node_opcua_address_space_1.SessionContext);
1566
1561
  (0, node_opcua_assert_1.assert)(callback instanceof Function);
1567
1562
  const nodeId = nodeToRead.nodeId;
@@ -1569,6 +1564,9 @@ class ServerEngine extends events_1.EventEmitter {
1569
1564
  const dataEncoding = nodeToRead.dataEncoding;
1570
1565
  const continuationPoint = nodeToRead.continuationPoint;
1571
1566
  timestampsToReturn = (0, node_opcua_data_value_1.coerceTimestampsToReturn)(timestampsToReturn);
1567
+ if (timestampsToReturn === node_opcua_service_read_1.TimestampsToReturn.Invalid) {
1568
+ return callback(null, new node_opcua_service_history_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid }));
1569
+ }
1572
1570
  const obj = this.__findNode(nodeId);
1573
1571
  if (!obj) {
1574
1572
  // may be return BadNodeIdUnknown in dataValue instead ?
@@ -1604,7 +1602,7 @@ class ServerEngine extends events_1.EventEmitter {
1604
1602
  // BadNotReadable
1605
1603
  // invalid attributes : BadNodeAttributesInvalid
1606
1604
  // invalid range : BadIndexRangeInvalid
1607
- obj.historyRead(context, historyReadDetails, indexRange, dataEncoding, continuationPoint, (err, result) => {
1605
+ obj.historyRead(context, historyReadDetails, indexRange, dataEncoding, continuationData, (err, result) => {
1608
1606
  if (err || !result) {
1609
1607
  return callback(err);
1610
1608
  }