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,33 +1,34 @@
|
|
|
1
|
-
import { ServerSession } from "./server_session";
|
|
2
1
|
import { assert } from "node-opcua-assert";
|
|
3
2
|
import { UserIdentityToken, AnonymousIdentityToken, UserNameIdentityToken, X509IdentityToken } from "node-opcua-types";
|
|
3
|
+
import { ServerSession } from "./server_session";
|
|
4
4
|
|
|
5
5
|
export function sessionsCompatibleForTransfer(sessionSrc: ServerSession, sessionDest: ServerSession): boolean {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
if (sessionSrc.userIdentityToken instanceof AnonymousIdentityToken) {
|
|
12
|
-
if (!(sessionDest.userIdentityToken instanceof AnonymousIdentityToken)) {
|
|
13
|
-
return false;
|
|
6
|
+
assert(sessionDest);
|
|
7
|
+
assert(sessionSrc);
|
|
8
|
+
if (!sessionSrc.userIdentityToken && !sessionDest.userIdentityToken) {
|
|
9
|
+
return true;
|
|
14
10
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
if (sessionSrc.userIdentityToken instanceof AnonymousIdentityToken) {
|
|
12
|
+
if (!(sessionDest.userIdentityToken instanceof AnonymousIdentityToken)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
16
|
+
} else if (sessionSrc.userIdentityToken instanceof UserNameIdentityToken) {
|
|
17
|
+
if (!(sessionDest.userIdentityToken instanceof UserNameIdentityToken)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
return sessionSrc.userIdentityToken.userName === sessionDest.userIdentityToken.userName;
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
// istanbul ignore else
|
|
23
|
+
else if (sessionSrc.userIdentityToken instanceof X509IdentityToken) {
|
|
24
|
+
if (!(sessionDest.userIdentityToken instanceof X509IdentityToken)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return (
|
|
28
|
+
sessionSrc.userIdentityToken.certificateData.toString("hex") ===
|
|
29
|
+
sessionDest.userIdentityToken.certificateData.toString("hex")
|
|
30
|
+
);
|
|
31
|
+
} else {
|
|
32
|
+
throw new Error("Unsupported Identity token");
|
|
26
33
|
}
|
|
27
|
-
return (
|
|
28
|
-
sessionSrc.userIdentityToken.certificateData.toString("hex") === sessionDest.userIdentityToken.certificateData.toString("hex")
|
|
29
|
-
);
|
|
30
|
-
} else {
|
|
31
|
-
throw new Error("Unsupported Identity token");
|
|
32
|
-
}
|
|
33
34
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { assert } from "node-opcua-assert";
|
|
5
5
|
|
|
6
|
-
import {BaseNode, UAVariable} from "node-opcua-address-space";
|
|
6
|
+
import { BaseNode, UAVariable } from "node-opcua-address-space";
|
|
7
7
|
import { AttributeIds } from "node-opcua-data-model";
|
|
8
8
|
import { NodeClass } from "node-opcua-data-model";
|
|
9
9
|
import { ExtensionObject } from "node-opcua-extension-object";
|
|
@@ -11,18 +11,12 @@ import { NodeId } from "node-opcua-nodeid";
|
|
|
11
11
|
import { DataChangeFilter, EventFilter } from "node-opcua-service-filter";
|
|
12
12
|
import { DeadbandType } from "node-opcua-service-subscription";
|
|
13
13
|
import { StatusCode, StatusCodes } from "node-opcua-status-code";
|
|
14
|
-
import {ReadValueIdOptions} from "node-opcua-types";
|
|
15
|
-
import {BaseNode2} from "./monitored_item";
|
|
16
|
-
|
|
17
|
-
function __validateDataChangeFilter(
|
|
18
|
-
filter: DataChangeFilter,
|
|
19
|
-
itemToMonitor: ReadValueIdOptions,
|
|
20
|
-
node: UAVariable
|
|
21
|
-
): StatusCode {
|
|
14
|
+
import { ReadValueIdOptions } from "node-opcua-types";
|
|
22
15
|
|
|
16
|
+
function __validateDataChangeFilter(filter: DataChangeFilter, itemToMonitor: ReadValueIdOptions, node: UAVariable): StatusCode {
|
|
23
17
|
assert(itemToMonitor.attributeId === AttributeIds.Value);
|
|
24
18
|
|
|
25
|
-
if (
|
|
19
|
+
if (node.nodeClass !== NodeClass.Variable) {
|
|
26
20
|
return StatusCodes.BadNodeIdInvalid;
|
|
27
21
|
}
|
|
28
22
|
|
|
@@ -54,27 +48,19 @@ function __validateDataChangeFilter(
|
|
|
54
48
|
return StatusCodes.Good;
|
|
55
49
|
}
|
|
56
50
|
|
|
57
|
-
export function validateFilter(
|
|
58
|
-
filter: ExtensionObject | null,
|
|
59
|
-
itemToMonitor: ReadValueIdOptions,
|
|
60
|
-
node: BaseNode
|
|
61
|
-
) {
|
|
62
|
-
|
|
51
|
+
export function validateFilter(filter: ExtensionObject | null, itemToMonitor: ReadValueIdOptions, node: BaseNode): StatusCode {
|
|
63
52
|
// handle filter information
|
|
64
|
-
if (filter && filter instanceof EventFilter
|
|
65
|
-
&& itemToMonitor.attributeId !== AttributeIds.EventNotifier) {
|
|
53
|
+
if (filter && filter instanceof EventFilter && itemToMonitor.attributeId !== AttributeIds.EventNotifier) {
|
|
66
54
|
// invalid filter on Event
|
|
67
55
|
return StatusCodes.BadFilterNotAllowed;
|
|
68
56
|
}
|
|
69
57
|
|
|
70
|
-
if (filter && filter instanceof DataChangeFilter
|
|
71
|
-
&& itemToMonitor.attributeId !== AttributeIds.Value) {
|
|
58
|
+
if (filter && filter instanceof DataChangeFilter && itemToMonitor.attributeId !== AttributeIds.Value) {
|
|
72
59
|
// invalid DataChange filter on non Value Attribute
|
|
73
60
|
return StatusCodes.BadFilterNotAllowed;
|
|
74
61
|
}
|
|
75
62
|
|
|
76
|
-
if (filter && itemToMonitor.attributeId !== AttributeIds.EventNotifier
|
|
77
|
-
&& itemToMonitor.attributeId !== AttributeIds.Value) {
|
|
63
|
+
if (filter && itemToMonitor.attributeId !== AttributeIds.EventNotifier && itemToMonitor.attributeId !== AttributeIds.Value) {
|
|
78
64
|
return StatusCodes.BadFilterNotAllowed;
|
|
79
65
|
}
|
|
80
66
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("node-opcua-pki/bin/crypto_create_CA");
|
|
1
|
+
require("node-opcua-pki/bin/crypto_create_CA");
|