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.
- package/LICENSE +20 -20
- package/dist/base_server.js +12 -14
- package/dist/base_server.js.map +1 -1
- package/dist/factory.d.ts +4 -2
- package/dist/factory.js.map +1 -1
- package/dist/history_server_capabilities.js.map +1 -1
- package/dist/i_server_side_publish_engine.d.ts +1 -1
- package/dist/i_server_side_publish_engine.js +1 -1
- package/dist/i_server_side_publish_engine.js.map +1 -1
- package/dist/monitored_item.d.ts +3 -0
- package/dist/monitored_item.js +7 -14
- package/dist/monitored_item.js.map +1 -1
- package/dist/node_sampler.js +1 -1
- package/dist/node_sampler.js.map +1 -1
- package/dist/opcua_server.d.ts +29 -44
- package/dist/opcua_server.js +218 -262
- package/dist/opcua_server.js.map +1 -1
- package/dist/queue.js +1 -0
- package/dist/queue.js.map +1 -1
- package/dist/register_server_manager.d.ts +4 -1
- package/dist/register_server_manager.js +5 -5
- package/dist/register_server_manager.js.map +1 -1
- package/dist/register_server_manager_hidden.d.ts +1 -1
- package/dist/register_server_manager_hidden.js.map +1 -1
- package/dist/register_server_manager_mdns_only.d.ts +4 -1
- package/dist/register_server_manager_mdns_only.js +1 -1
- package/dist/register_server_manager_mdns_only.js.map +1 -1
- package/dist/server_capabilities.js.map +1 -1
- package/dist/server_end_point.d.ts +4 -1
- package/dist/server_end_point.js +10 -11
- package/dist/server_end_point.js.map +1 -1
- package/dist/server_engine.d.ts +11 -7
- package/dist/server_engine.js +72 -74
- package/dist/server_engine.js.map +1 -1
- package/dist/server_publish_engine.d.ts +4 -1
- package/dist/server_publish_engine.js +5 -5
- package/dist/server_publish_engine.js.map +1 -1
- package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +2 -2
- package/dist/server_publish_engine_for_orphan_subscriptions.js.map +1 -1
- package/dist/server_session.d.ts +1 -1
- package/dist/server_session.js +24 -29
- package/dist/server_session.js.map +1 -1
- package/dist/server_subscription.d.ts +3 -1
- package/dist/server_subscription.js +6 -6
- package/dist/server_subscription.js.map +1 -1
- package/dist/sessions_compatible_for_transfer.js +2 -1
- package/dist/sessions_compatible_for_transfer.js.map +1 -1
- package/dist/validate_filter.js +4 -7
- package/dist/validate_filter.js.map +1 -1
- package/package.json +45 -44
- package/source/base_server.ts +19 -22
- package/source/factory.ts +5 -2
- package/source/history_server_capabilities.ts +3 -4
- package/source/i_channel_data.ts +4 -8
- package/source/i_register_server_manager.ts +0 -3
- package/source/i_server_side_publish_engine.ts +5 -6
- package/source/i_socket_data.ts +1 -1
- package/source/index.ts +14 -14
- package/source/monitored_item.ts +32 -44
- package/source/node_sampler.ts +82 -82
- package/source/opcua_server.ts +326 -357
- package/source/queue.ts +6 -7
- package/source/register_server_manager.ts +35 -23
- package/source/register_server_manager_hidden.ts +8 -10
- package/source/register_server_manager_mdns_only.ts +8 -13
- package/source/server_capabilities.ts +0 -5
- package/source/server_end_point.ts +28 -30
- package/source/server_engine.ts +122 -122
- package/source/server_publish_engine.ts +24 -21
- package/source/server_publish_engine_for_orphan_subscriptions.ts +26 -26
- package/source/server_session.ts +44 -49
- package/source/server_subscription.ts +23 -23
- package/source/sessions_compatible_for_transfer.ts +26 -25
- package/source/validate_filter.ts +8 -22
- 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;
|
package/dist/server_end_point.js
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
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 = "),
|
|
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 =
|
|
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)(!
|
|
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 (!
|
|
565
|
+
if (!Object.prototype.hasOwnProperty.call(this._channels, channel.hashKey)) {
|
|
567
566
|
return;
|
|
568
567
|
}
|
|
569
|
-
(0, node_opcua_assert_1.assert)(
|
|
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 =
|
|
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":";;;AAAA;;GAEG;AACH,4BAA4B;AAC5B,+BAA+B;AAC/B,+BAA+B;AAC/B,mCAAsC;AACtC,2BAA2B;AAG3B,yDAA2C;AAE3C,yDAA+G;AAC/G,uDAAgF;AAChF,6DAAmG;AACnG,yEAQmC;AACnC,+EAA6D;AAC7D,+EAAmE;AACnE,+EAAsE;AAItE,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,2BAA2B,GAAG,mEAAmE,CAAC;AAExG,SAAS,iBAAiB,CAAC,MAAkB,EAAE,MAAc;IACzD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC7G,MAAM,IAAI,GAAgB;QACtB,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,aAAa;QACb,YAAY;QACZ,UAAU;QACV,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,MAAM;KACT,CAAC;IACF,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAiC;IACzD,MAAM,EACF,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,EACP,iBAAiB,EACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,WAAW,GAAiB;QAC9B,SAAS;QACT,iBAAiB;QACjB,WAAW;QACX,oBAAoB;QACpB,cAAc;QACd,YAAY;QACZ,cAAc;QACd,OAAO;QACP,iBAAiB;KACpB,CAAC;IACF,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,QAAoC;IACzD,SAAS,WAAW,CAAC,OAAiC;;QAClD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,MAAC,OAAe,CAAC,SAAS,0CAAE,OAAO,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;SACpC;IACL,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC5B,WAAW,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,IAAI,0BAA0B,GAAG,CAAC,CAAC;AAgEnC,SAAS,aAAa,CAAC,IAAY,EAAE,UAAqC;IACtE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QAClB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE;YAChD,OAAO,EAAE,CAAC;SACb;QACD,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;KACf;SAAM;QACH,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;KACf;AACL,CAAC;AACD;;;;;GAKG;AACH,MAAa,mBAAoB,SAAQ,qBAAY;IA8BjD,YAAY,OAAmC;QAC3C,KAAK,EAAE,CAAC;QAJJ,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAG,0BAA0B,EAAE,CAAC;QACxC,yBAAoB,GAA8B,EAAE,CAAC;QAIzD,IAAA,0BAAM,EAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAC,aAAa,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAC7G,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACzG,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAC,YAAY,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAErD,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,IAAA,0BAAM,EAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAEtC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,IAAI,MAAM,CAAC;QAE/E,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;QAEnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QAExC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAEzB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;QAEvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAA,0BAAM,EAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;QAEtC,IAAA,0BAAM,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,qDAAqD,CAAC,CAAC;QACxG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,qDAAsB,CAAC,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAA,0BAAM,EAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAEM,QAAQ;QACX,MAAM,WAAW,GAAG,IAAA,mCAAe,EAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAE1D,MAAM,GAAG,GACL,YAAY;YACZ,IAAI,CAAC,QAAQ;YACb,UAAU;YACV,IAAI,CAAC,IAAI;YACT,OAAO;YACP,IAAI,CAAC,UAAU,CAAC,MAAM;YACtB,GAAG;YACH,IAAA,sCAAkB,EAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC9D,GAAG;YACH,IAAA,sCAAkB,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,WAAW;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,cAAc;QACjB,OAAO,IAAA,6BAAS,EAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,mBAAmB;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,aAAa;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,sBAAsB,CACzB,YAAiC,EACjC,cAA8B,EAC9B,WAA0B;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;QAEtG,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YAClF,QAAQ,CAAC,+CAA+C,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;gBACjB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,+CAAmB,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;aACrF;SACJ;QACD,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEM,sBAAsB,CACzB,YAAiC,EACjC,cAA8B,EAC9B,OAAmC;QAEnC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG;gBACN,QAAQ,EAAE,IAAA,iDAA2B,GAAE;gBACvC,gBAAgB,EAAE,CAAC,0CAAc,CAAC,cAAc,CAAC;aACpD,CAAC;SACL;QAED,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAE9F,uBAAuB;QACvB,IAAI,YAAY,KAAK,+CAAmB,CAAC,IAAI,IAAI,cAAc,KAAK,0CAAc,CAAC,IAAI,EAAE;YACrF,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACzC;QACD,uBAAuB;QACvB,IAAI,YAAY,KAAK,+CAAmB,CAAC,IAAI,IAAI,cAAc,KAAK,0CAAc,CAAC,IAAI,EAAE;YACrF,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACzC;QACD,EAAE;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,6EAA6E;QAC7E,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEtE,IAAA,0BAAM,EAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,kCAAkC,CAAC,CAAC;QAExG,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAA,iDAA2B,GAAE,CAAC;QACnE,MAAM,WAAW,GAAG,aAAa,QAAQ,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;QAEnE,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAE7F,uBAAuB;QACvB,IAAI,aAAa,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC9C;QAED,wBAAwB;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,wBAAwB,CAAC;YACrB,UAAU,EAAE,IAAI,CAAC,oBAAoB;YACrC,WAAW;YACX,QAAQ;YACR,IAAI;YAEJ,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,EAAE;YAElD,YAAY;YACZ,cAAc;YAEd,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,YAAY,EAAE,OAAO,CAAC,YAAY;YAElC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;YAChC,gBAAgB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,EAAE;SACpD,CAAC,CACL,CAAC;IACN,CAAC;IAEM,gCAAgC,CAAC,OAAkC;QACtE,OAAO,qBAAQ,OAAO,CAAE,CAAC;QACzB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,sBAAsB,CAAC,+CAAmB,CAAC,IAAI,EAAE,0CAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IAEM,+BAA+B,CAAC,OAA8C;QACjF,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAExB,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAAC;QACtE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;QAE/E,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAA,iDAA2B,GAAE,CAAC;QAE1E,IAAI,SAAS,GAAa,CAAC,eAAe,CAAC,CAAC;QAE5C,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC5D,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,EAAE;YAC/C,OAAO,CAAC,iBAAiB,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAC3D;QACD,kCAAkC;QAClC,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,iBAA6B,CAAC,CAAC,CAAC,CAAC;QAElF,KAAK,MAAM,iBAAiB,IAAI,SAAS,EAAE;YACvC,MAAM,QAAQ,GAAG,OAAoC,CAAC;YACtD,QAAQ,CAAC,QAAQ,GAAG,iBAAiB,CAAC;YAEtC,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,+CAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9D,IAAI,CAAC,sBAAsB,CAAC,+CAAmB,CAAC,IAAI,EAAE,0CAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACxF;iBAAM;gBACH,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;oBAC3B,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC;iBACnD;aACJ;YACD,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE;gBAC9C,IAAI,YAAY,KAAK,+CAAmB,CAAC,IAAI,EAAE;oBAC3C,SAAS;iBACZ;gBACD,KAAK,MAAM,cAAc,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBACnD,IAAI,cAAc,KAAK,0CAAc,CAAC,IAAI,EAAE;wBACxC,SAAS;qBACZ;oBACD,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;iBACvE;aACJ;SACJ;IACL,CAAC;IAED;;OAEG;IACI,oBAAoB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,QAA+B;QACzC,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;QACvC,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;QAEnE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QAEjC,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAC/B,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAQ,CAAC,MAAM,CAChB,IAAI,CAAC,IAAI;QACT,SAAS,CAAC,CAAC,GAAW,EAAE,EAAE;YACtB,uBAAuB;YACvB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1E,IAAA,0BAAM,EAAC,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CACJ,CAAC;IACN,CAAC;IAEM,iBAAiB,CAAC,QAA+B;QACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtC,MAAM,cAAc,GAAG,OAAc,CAAC;YACtC,IAAI,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC9D,4CAA4C;gBAC5C,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3C,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;aACtE;SACJ;QACD,QAAQ,EAAE,CAAC;IACf,CAAC;IAEM,iBAAiB,CAAC,QAA+B;QACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,OAAO,QAAQ,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;SACjE;QAED,kFAAkF;QAClF,qFAAqF;QACrF,uEAAuE;QACvE,sEAAsE;QACtE,0EAA0E;QAC1E,iDAAiD;QACjD,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,QAAQ,CAAC,8BAA8B,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,QAAQ,EAAE,CAAC;IACf,CAAC;IAEM,iBAAiB,CAAC,QAA+B;QACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAEM,yBAAyB;QAC5B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACjD,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAC/B;IACL,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,QAA+B;QAC3C,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,wDAAwD;YACxD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBACxB,mCAAmC;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChD,KAAK,CAAC,IAAI,CACN,SAAS,EACT,CAAC,OAAiC,EAAE,SAAgC,EAAE,EAAE;oBACpE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC9C,CAAC,EACD,CAAC,GAAkB,EAAE,EAAE;oBACnB,0BAA0B;oBAC1B,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;wBAC7C,QAAQ,CAAC,QAAQ,CAAC,CAAC;qBACtB;oBACD,IAAA,0BAAM,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,2CAA2C,CAAC,CAAC;oBAC9F,QAAQ,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC;gBAC/B,CAAC,CACJ,CAAC;YACN,CAAC,CAAC,CAAC;SACN;aAAM;YACH,QAAQ,EAAE,CAAC;SACd;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAA+B;QACxC,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,IAAW,YAAY;QACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,CACH,IAAI,CAAC,yBAAyB;YAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAmB,EAAE,OAAiC,EAAE,EAAE;gBACvE,OAAO,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;YAC9C,CAAC,EAAE,CAAC,CAAC,CACR,CAAC;IACN,CAAC;IAED,IAAW,SAAS;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,CACH,IAAI,CAAC,sBAAsB;YAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAmB,EAAE,OAAiC,EAAE,EAAE;gBACvE,OAAO,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3C,CAAC,EAAE,CAAC,CAAC,CACR,CAAC;IACN,CAAC;IAED,IAAW,iBAAiB;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,CACH,IAAI,CAAC,4BAA4B;YACjC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAmB,EAAE,OAAiC,EAAE,EAAE;gBACvE,OAAO,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACnD,CAAC,EAAE,CAAC,CAAC,CACR,CAAC;IACN,CAAC;IAED,IAAW,kBAAkB;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,CACH,IAAI,CAAC,6BAA6B;YAClC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAmB,EAAE,OAAiC,EAAE,EAAE;gBACvE,OAAO,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;YACpD,CAAC,EAAE,CAAC,CAAC,CACR,CAAC;IACN,CAAC;IAED,IAAW,kBAAkB;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC;IAEO,gBAAgB;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,OAAQ,CAAC,cAAc,CAAC,CAAC,GAAiB,EAAE,KAAa,EAAE,EAAE;YAC9D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,OAAQ,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;IAEO,aAAa;QACjB,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjG,wEAAwE;QACxE,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,iBAAiB;QAExE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,OAAO;aACP,EAAE,CAAC,YAAY,EAAE,CAAC,MAAqB,EAAE,EAAE;YACxC,uBAAuB;YACvB,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,QAAQ,CAAC,2BAA2B,GAAI,MAAc,CAAC,aAAa,GAAG,GAAG,GAAI,MAAc,CAAC,UAAU,CAAC,CAAC;aAC5G;QACL,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACd,QAAQ,CAAC,4CAA4C,CAAC,CAAC;QAC3D,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACxB,mDAAmD;YACnD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACX,CAAC;IAEO,qBAAqB,CAAC,MAAc;QACxC,oDAAoD;QACnD,MAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjC,QAAQ,CAAC,2CAA2C,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,QAAQ,CACJ,KAAK,CAAC,OAAO,CAAC,IAAI,CACd,4CAA4C;gBACxC,wEAAwE,CAC/E,CACJ,CAAC;YACF,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,OAAO;SACV;QAED,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YACzD,QAAQ,CACJ,iBAAiB,EACjB,aAAa,EACb,8BAA8B,EAC9B,IAAI,CAAC,OAAQ,CAAC,cAAc,EAC5B,IAAI,CAAC,cAAc,CACtB,CAAC;YACF,IAAI,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE;gBACtC,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,OAAO,CAAC,IAAI,CACd,4CAA4C;oBACxC,2EAA2E,CAClF,CACJ,CAAC;gBACF,MAAM,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;gBACtE,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACrD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAE3C,MAAM,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAc,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO;aACV;YAED,QAAQ,CAAC,qEAAqE,CAAC,CAAC;YAEhF,MAAM,OAAO,GAAG,IAAI,oDAAwB,CAAC;gBACzC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;gBAC3D,qCAAqC;gBACrC,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,EAAE,CAAC;YAEhB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAElC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE;gBACjC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBACtC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtD,IAAI,GAAG,EAAE;oBACL,MAAM,MAAM,GAAG,+BAA+B,GAAG,GAAG,CAAC,OAAO,CAAC;oBAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACrD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAChD,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;oBAE/D,MAAM,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAc,CAAC,OAAO,EAAE,CAAC;iBAC7B;qBAAM;oBACH,QAAQ,CAAC,sCAAsC,CAAC,CAAC;oBACjD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;iBAClC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE;gBACnC,UAAU;gBACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,8GAA8G;QAC9G,sFAAsF;QACtF,0GAA0G;QAC1G,6GAA6G;QAC7G,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IACpD,CAAC;IAEO,mBAAmB,CAAC,OAAiC;QACzD,iEAAiE;QACjE,uDAAuD;QACvD,mEAAmE;QACnE,yEAAyE;QACzE,IAAA,0BAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QAE7D,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAC;QAE3F,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QAEzC,OAAe,CAAC,0BAA0B,GAAG,GAAG,EAAE;YAC/C,QAAQ,CAAC,kEAAkE,CAAC,CAAC;YAC7E,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAG,OAAe,CAAC,0BAA0B,CAAC,CAAC;IACrE,CAAC;IAEO,uBAAuB,CAAC,OAAiC;QAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAClC,QAAQ,CAAC,4BAA4B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,OAAO;SACV;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,IAAA,0BAAM,EAAC,OAAQ,OAAe,CAAC,0BAA0B,KAAK,UAAU,CAAC,CAAC;QAC1E,OAAO,CAAC,cAAc,CAAC,OAAO,EAAG,OAAe,CAAC,0BAA0B,CAAC,CAAC;QAC5E,OAAe,CAAC,0BAA0B,GAAG,IAAI,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,OAAiC;QACtD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAElF,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAE1C;;;eAGG;YACH,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAEjC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;SACN;aAAM;YACH,QAAQ,CAAC,0EAA0E,CAAC,CAAC;YACrF,QAAQ,CAAC,4CAA4C,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,OAAO,EAAE,CAAC;SACrB;IACL,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,OAAiC;QACxD,QAAQ,CAAC,qCAAqC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjD,OAAO;SACV;QAED,IAAA,0BAAM,EAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC,CAAC;QAEpF;;;WAGG;QACH,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAEnC,gFAAgF;QAChF,IAAI,CAAC,yBAAyB,IAAI,OAAO,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,sBAAsB,IAAI,OAAO,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,4BAA4B,IAAI,OAAO,CAAC,iBAAiB,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,uBAAuB;QACvB,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,QAAQ,CAAC,oCAAoC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5E;QAED,sBAAsB;IAC1B,CAAC;IAEO,WAAW,CAAC,GAAW;QAC3B,IAAA,0BAAM,EAAC,OAAO,IAAI,CAAC,gBAAgB,KAAK,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,OAAiC,EAAE,cAAqC;QAC7F,IAAA,0BAAM,EAAC,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,qCAAqC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACjC,YAAY,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,oBAAgC;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE9C,IAAI,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE;YACtC,uBAAuB;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;YAEpF,MAAM,eAAe,GAA+B,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,QAAkC,EAAE,EAAE;gBACjH,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,+CAA+C;gBAE/C,uBAAuB;gBACvB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACpC,YAAY,CAAC,oBAAoB,CAAC,CAAC;gBACnC,OAAO;aACV;YACD,uBAAuB;YACvB,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,GAAG,CACP,4CAA4C,EAC5C,eAAe,CAAC,GAAG,CAAC,CAAC,QAAkC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC1F,CAAC;aACL;YACD,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAEnC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACf,uBAAuB;gBACvB,IAAI,OAAO,EAAE;oBACT,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;iBACxE;gBACD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACjC,oBAAoB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,YAAY,CAAC,oBAAoB,CAAC,CAAC;SACtC;IACL,CAAC;CACJ;AA5sBD,kDA4sBC;AA8DD,SAAS,qBAAqB,CAAC,YAAiC,EAAE,cAA8B;IAC5F,IAAI,YAAY,KAAK,+CAAmB,CAAC,IAAI,EAAE;QAC3C,OAAO,CAAC,CAAC;KACZ;IACD,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,YAAY,KAAK,+CAAmB,CAAC,cAAc,EAAE;QACrD,MAAM,GAAG,GAAG,CAAC;KAChB;IACD,QAAQ,cAAc,EAAE;QACpB,KAAK,0CAAc,CAAC,QAAQ,CAAC;QAC7B,KAAK,0CAAc,CAAC,aAAa,CAAC;QAClC,KAAK,0CAAc,CAAC,QAAQ;YACxB,OAAO,CAAC,CAAC,CAAC,oBAAoB;QAClC,KAAK,0CAAc,CAAC,aAAa;YAC7B,OAAO,CAAC,CAAC,CAAC,oBAAoB;QAClC,KAAK,0CAAc,CAAC,QAAQ;YACxB,OAAO,CAAC,CAAC,CAAC,oBAAoB;QAClC,KAAK,0CAAc,CAAC,aAAa;YAC7B,OAAO,CAAC,GAAG,MAAM,CAAC;QACtB,KAAK,0CAAc,CAAC,cAAc;YAC9B,OAAO,CAAC,GAAG,MAAM,CAAC;QACtB,KAAK,0CAAc,CAAC,qBAAqB;YACrC,OAAO,CAAC,CAAC;QAEb,QAAQ;QACR,KAAK,0CAAc,CAAC,IAAI;YACpB,OAAO,CAAC,CAAC;KAChB;AACL,CAAC;AACD;;GAEG;AACH,SAAS,wBAAwB,CAAC,OAAuC;IACrE,IAAA,0BAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,+BAA+B,CAAC,CAAC;IAChE,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/E,IAAA,0BAAM,EAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAC,mBAAmB,CAAC,CAAC,CAAC;IAC3E,IAAA,0BAAM,EAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;IACxD,IAAA,0BAAM,EAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,IAAA,0BAAM,EAAC,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACtE,IAAA,0BAAM,EAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACnE,IAAA,0BAAM,EAAC,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IAEhD,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9D,OAAO,CAAC,aAAa;QACjB,OAAO,CAAC,aAAa,KAAK,SAAS;YAC/B,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC;YACrE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAChC,IAAA,0BAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAE3E,MAAM,iBAAiB,GAAG,IAAA,iCAAK,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAExD,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,IAAI,OAAO,CAAC,cAAc,KAAK,0CAAc,CAAC,IAAI,EAAE;QAChD,IAAI,OAAO,CAAC,qBAAqB,EAAE;YAC/B,kBAAkB,CAAC,IAAI,CAAC;gBACpB,QAAQ,EAAE,CAAC,CAAC,mBAAmB,CAAC;gBAChC,SAAS,EAAE,4CAAa,CAAC,QAAQ;gBAEjC,eAAe,EAAE,IAAI;gBACrB,iBAAiB,EAAE,IAAI;gBACvB,iBAAiB,EAAE,IAAI;aAC1B,CAAC,CAAC;SACN;QAED,MAAM,6BAA6B,GAC/B,OAAO,CAAC,6BAA6B,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;QAExG,IAAI,CAAC,6BAA6B,EAAE;YAChC,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAChE,kBAAkB,CAAC,IAAI,CAAC;oBACpB,QAAQ,EAAE,CAAC,CAAC,mBAAmB,CAAC;oBAChC,SAAS,EAAE,4CAAa,CAAC,QAAQ;oBAEjC,eAAe,EAAE,IAAI;oBACrB,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,0CAAc,CAAC,QAAQ;iBAC7C,CAAC,CAAC;aACN;YAED,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAAc,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBACrE,kBAAkB,CAAC,IAAI,CAAC;oBACpB,QAAQ,EAAE,CAAC,CAAC,wBAAwB,CAAC;oBACrC,SAAS,EAAE,4CAAa,CAAC,QAAQ;oBAEjC,eAAe,EAAE,IAAI;oBACrB,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,0CAAc,CAAC,aAAa;iBAClD,CAAC,CAAC;aACN;YAED,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACtE,kBAAkB,CAAC,IAAI,CAAC;oBACpB,QAAQ,EAAE,CAAC,CAAC,yBAAyB,CAAC;oBACtC,SAAS,EAAE,4CAAa,CAAC,QAAQ;oBAEjC,eAAe,EAAE,IAAI;oBACrB,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,0CAAc,CAAC,cAAc;iBACnD,CAAC,CAAC;aACN;YAED,OAAO;YACP,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAChE,kBAAkB,CAAC,IAAI,CAAC;oBACpB,QAAQ,EAAE,CAAC,CAAC,sBAAsB,CAAC;oBACnC,SAAS,EAAE,4CAAa,CAAC,QAAQ;oBAEjC,eAAe,EAAE,IAAI;oBACrB,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,0CAAc,CAAC,QAAQ;iBAC7C,CAAC,CAAC;aACN;YACD,cAAc;YACd,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACtE,kBAAkB,CAAC,IAAI,CAAC;oBACpB,QAAQ,EAAE,CAAC,CAAC,4BAA4B,CAAC;oBACzC,SAAS,EAAE,4CAAa,CAAC,WAAW;oBAEpC,eAAe,EAAE,IAAI;oBACrB,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,0CAAc,CAAC,cAAc;iBACnD,CAAC,CAAC;aACN;SACJ;KACJ;SAAM;QACH,QAAQ;QACR,gDAAgD;QAChD,2CAA2C;QAC3C,4FAA4F;QAC5F,kBAAkB,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,kBAAkB,CAAC;YAC/B,SAAS,EAAE,4CAAa,CAAC,QAAQ;YAEjC,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI;YACvB,iBAAiB,EAAE,IAAI;SAC1B,CAAC,CAAC;QAEH,kBAAkB,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,iBAAiB,CAAC;YAC9B,SAAS,EAAE,4CAAa,CAAC,WAAW;YAEpC,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI;YACvB,iBAAiB,EAAE,IAAI;SAC1B,CAAC,CAAC;KACN;IAED,IAAI,OAAO,CAAC,cAAc,EAAE;QACxB,kBAAkB,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC;YACxB,SAAS,EAAE,4CAAa,CAAC,SAAS;YAElC,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI;YACvB,iBAAiB,EAAE,IAAI;SAC1B,CAAC,CAAC;KACN;IAED,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,IAAI,kDAAmB,CAAC;QACrC,WAAW,EAAE,OAAO,CAAC,WAAW;QAEhC,MAAM,EAAE,SAAS;QACjB,iBAAiB,EAAE,OAAO,CAAC,sBAAsB;QAEjD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB;QACjB,kBAAkB;QAElB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,mBAAmB,EAAE,2BAA2B;KACnD,CAA0B,CAAC;IAE3B,QAAgB,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE;QACnD,OAAO,IAAA,qDAA+B,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEzC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACtB,YAAiC,EACjC,cAA8B,EAC9B,WAA0B,EAC1B,QAA6B;IAE7B,IAAA,0BAAM,EAAC,QAAQ,YAAY,kDAAmB,CAAC,CAAC;IAChD,MAAM,uBAAuB,GAAG,IAAA,mCAAO,EAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACpE,IAAI,WAAW,IAAI,QAAQ,CAAC,WAAY,KAAK,WAAW,EAAE;QACtD,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,IAAI,uBAAuB,KAAK,cAAc,CAAC;AAChG,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,+CAAmB,CAAC,IAAI,EAAE,+CAAmB,CAAC,IAAI,EAAE,+CAAmB,CAAC,cAAc,CAAC,CAAC;AACtH,MAAM,uBAAuB,GAAG;IAC5B,0CAAc,CAAC,aAAa;IAC5B,0CAAc,CAAC,QAAQ;IACvB,+CAA+C;IAC/C,0CAAc,CAAC,cAAc;CAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"server_end_point.js","sourceRoot":"","sources":["../source/server_end_point.ts"],"names":[],"mappings":"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"}
|
package/dist/server_engine.d.ts
CHANGED
|
@@ -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
|
|
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:
|
|
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:
|
|
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
|
-
|
|
302
|
+
protected _unexposeSubscriptionDiagnostics(subscription: Subscription): void;
|
|
299
303
|
/**
|
|
300
304
|
* create a new subscription
|
|
301
305
|
* @return {Subscription}
|
package/dist/server_engine.js
CHANGED
|
@@ -13,10 +13,9 @@ exports.ServerEngine = void 0;
|
|
|
13
13
|
/**
|
|
14
14
|
* @module node-opcua-server
|
|
15
15
|
*/
|
|
16
|
-
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
322
|
+
this._shutdownTasks.push(shutdownAndDisposeAddressSpace);
|
|
325
323
|
// perform registerShutdownTask
|
|
326
|
-
for (const task of this.
|
|
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,
|
|
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
|
|
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
|
-
|
|
1113
|
-
|
|
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
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
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
|
-
|
|
1146
|
-
|
|
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
|
-
|
|
1151
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1159
|
-
|
|
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)(
|
|
1497
|
-
(0, node_opcua_assert_1.assert)(
|
|
1498
|
-
(0, node_opcua_assert_1.assert)(
|
|
1499
|
-
(0, node_opcua_assert_1.assert)(
|
|
1500
|
-
(0, node_opcua_assert_1.assert)(
|
|
1501
|
-
(0, node_opcua_assert_1.assert)(
|
|
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
|
|
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 =
|
|
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,
|
|
1605
|
+
obj.historyRead(context, historyReadDetails, indexRange, dataEncoding, continuationData, (err, result) => {
|
|
1608
1606
|
if (err || !result) {
|
|
1609
1607
|
return callback(err);
|
|
1610
1608
|
}
|