node-opcua-server 2.97.0 → 2.98.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/dist/base_server.d.ts +110 -110
- package/dist/base_server.js +490 -490
- package/dist/base_server.js.map +1 -1
- package/dist/factory.d.ts +12 -12
- package/dist/factory.js +23 -23
- package/dist/filter/check_where_clause_on_address_space.d.ts +3 -3
- package/dist/filter/check_where_clause_on_address_space.js +22 -22
- package/dist/filter/extract_event_fields.d.ts +10 -10
- package/dist/filter/extract_event_fields.js +17 -17
- package/dist/helper.d.ts +10 -10
- package/dist/helper.js +75 -75
- package/dist/history_server_capabilities.d.ts +35 -35
- package/dist/history_server_capabilities.js +43 -43
- package/dist/i_channel_data.d.ts +13 -13
- package/dist/i_channel_data.js +2 -2
- package/dist/i_register_server_manager.d.ts +16 -16
- package/dist/i_register_server_manager.js +2 -2
- package/dist/i_server_side_publish_engine.d.ts +36 -36
- package/dist/i_server_side_publish_engine.js +49 -49
- package/dist/i_socket_data.d.ts +11 -11
- package/dist/i_socket_data.js +2 -2
- package/dist/index.d.ts +16 -16
- package/dist/index.js +32 -32
- package/dist/monitored_item.d.ts +188 -188
- package/dist/monitored_item.js +1112 -1112
- package/dist/monitored_item.js.map +1 -1
- package/dist/node_sampler.d.ts +3 -3
- package/dist/node_sampler.js +79 -79
- package/dist/opcua_server.d.ts +747 -747
- package/dist/opcua_server.js +2428 -2428
- package/dist/opcua_server.js.map +1 -1
- package/dist/queue.d.ts +11 -11
- package/dist/queue.js +71 -71
- package/dist/register_server_manager.d.ts +96 -96
- package/dist/register_server_manager.js +584 -584
- package/dist/register_server_manager_hidden.d.ts +17 -17
- package/dist/register_server_manager_hidden.js +27 -27
- package/dist/register_server_manager_mdns_only.d.ts +22 -22
- package/dist/register_server_manager_mdns_only.js +55 -55
- package/dist/sampling_func.d.ts +3 -3
- package/dist/sampling_func.js +2 -2
- package/dist/server_capabilities.d.ts +148 -148
- package/dist/server_capabilities.js +101 -101
- package/dist/server_end_point.d.ts +185 -185
- package/dist/server_end_point.js +840 -840
- package/dist/server_engine.d.ts +318 -318
- package/dist/server_engine.js +1774 -1774
- package/dist/server_engine.js.map +1 -1
- package/dist/server_publish_engine.d.ts +113 -113
- package/dist/server_publish_engine.js +541 -541
- package/dist/server_publish_engine.js.map +1 -1
- package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +16 -16
- package/dist/server_publish_engine_for_orphan_subscriptions.js +51 -51
- package/dist/server_session.d.ts +185 -185
- package/dist/server_session.js +757 -757
- package/dist/server_session.js.map +1 -1
- package/dist/server_subscription.d.ts +421 -421
- package/dist/server_subscription.js +1347 -1347
- package/dist/server_subscription.js.map +1 -1
- package/dist/sessions_compatible_for_transfer.d.ts +2 -2
- package/dist/sessions_compatible_for_transfer.js +39 -39
- package/dist/user_manager.d.ts +32 -32
- package/dist/user_manager.js +98 -98
- package/dist/user_manager_ua.d.ts +3 -3
- package/dist/user_manager_ua.js +39 -39
- package/dist/validate_filter.d.ts +5 -5
- package/dist/validate_filter.js +81 -81
- package/package.json +52 -48
- package/test_helpers/create_certificates.js +0 -1
package/dist/validate_filter.js
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateFilter = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @module node-opcua-server
|
|
6
|
-
*/
|
|
7
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
9
|
-
const node_opcua_data_model_2 = require("node-opcua-data-model");
|
|
10
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
11
|
-
const node_opcua_service_filter_1 = require("node-opcua-service-filter");
|
|
12
|
-
const node_opcua_service_subscription_1 = require("node-opcua-service-subscription");
|
|
13
|
-
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
14
|
-
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
15
|
-
function isNumberDataType(node) {
|
|
16
|
-
const n = node.dataType;
|
|
17
|
-
if (n.namespace === 0 && n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.value < 22) {
|
|
18
|
-
switch (n.value) {
|
|
19
|
-
case node_opcua_basic_types_1.DataType.Float:
|
|
20
|
-
case node_opcua_basic_types_1.DataType.Double:
|
|
21
|
-
case node_opcua_basic_types_1.DataType.Byte:
|
|
22
|
-
case node_opcua_basic_types_1.DataType.SByte:
|
|
23
|
-
case node_opcua_basic_types_1.DataType.Int16:
|
|
24
|
-
case node_opcua_basic_types_1.DataType.Int32:
|
|
25
|
-
case node_opcua_basic_types_1.DataType.Int64:
|
|
26
|
-
case node_opcua_basic_types_1.DataType.UInt16:
|
|
27
|
-
case node_opcua_basic_types_1.DataType.UInt32:
|
|
28
|
-
case node_opcua_basic_types_1.DataType.UInt64:
|
|
29
|
-
return true;
|
|
30
|
-
default:
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const dataType = node.addressSpace.findDataType(node.dataType);
|
|
35
|
-
const dataTypeNumber = node.addressSpace.findDataType("Number");
|
|
36
|
-
return dataType.isSubtypeOf(dataTypeNumber);
|
|
37
|
-
}
|
|
38
|
-
function __validateDataChangeFilter(filter, itemToMonitor, node) {
|
|
39
|
-
(0, node_opcua_assert_1.assert)(itemToMonitor.attributeId === node_opcua_data_model_1.AttributeIds.Value);
|
|
40
|
-
if (node.nodeClass !== node_opcua_data_model_2.NodeClass.Variable) {
|
|
41
|
-
return node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid;
|
|
42
|
-
}
|
|
43
|
-
if (filter.deadbandType !== node_opcua_service_subscription_1.DeadbandType.None) {
|
|
44
|
-
// if node is not Numerical=> DataChangeFilter
|
|
45
|
-
(0, node_opcua_assert_1.assert)(node.dataType instanceof node_opcua_nodeid_1.NodeId);
|
|
46
|
-
if (!isNumberDataType(node)) {
|
|
47
|
-
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (filter.deadbandType === node_opcua_service_subscription_1.DeadbandType.Percent) {
|
|
51
|
-
if (filter.deadbandValue < 0 || filter.deadbandValue > 100) {
|
|
52
|
-
return node_opcua_status_code_1.StatusCodes.BadDeadbandFilterInvalid;
|
|
53
|
-
}
|
|
54
|
-
// node must also have a valid euRange
|
|
55
|
-
if (!node.getChildByName("EURange", 0)) {
|
|
56
|
-
// tslint:disable:no-console
|
|
57
|
-
console.log(" node has no euRange ! Dead band Percent cannot be used on node " + node.nodeId.toString());
|
|
58
|
-
return node_opcua_status_code_1.StatusCodes.BadMonitoredItemFilterUnsupported;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return node_opcua_status_code_1.StatusCodes.Good;
|
|
62
|
-
}
|
|
63
|
-
function validateFilter(filter, itemToMonitor, node) {
|
|
64
|
-
// handle filter information
|
|
65
|
-
if (filter && filter instanceof node_opcua_service_filter_1.EventFilter && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.EventNotifier) {
|
|
66
|
-
// invalid filter on Event
|
|
67
|
-
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
68
|
-
}
|
|
69
|
-
if (filter && filter instanceof node_opcua_service_filter_1.DataChangeFilter && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.Value) {
|
|
70
|
-
// invalid DataChange filter on non Value Attribute
|
|
71
|
-
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
72
|
-
}
|
|
73
|
-
if (filter && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.EventNotifier && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.Value) {
|
|
74
|
-
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
75
|
-
}
|
|
76
|
-
if (filter instanceof node_opcua_service_filter_1.DataChangeFilter) {
|
|
77
|
-
return __validateDataChangeFilter(filter, itemToMonitor, node);
|
|
78
|
-
}
|
|
79
|
-
return node_opcua_status_code_1.StatusCodes.Good;
|
|
80
|
-
}
|
|
81
|
-
exports.validateFilter = validateFilter;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateFilter = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-server
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
9
|
+
const node_opcua_data_model_2 = require("node-opcua-data-model");
|
|
10
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
11
|
+
const node_opcua_service_filter_1 = require("node-opcua-service-filter");
|
|
12
|
+
const node_opcua_service_subscription_1 = require("node-opcua-service-subscription");
|
|
13
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
14
|
+
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
15
|
+
function isNumberDataType(node) {
|
|
16
|
+
const n = node.dataType;
|
|
17
|
+
if (n.namespace === 0 && n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.value < 22) {
|
|
18
|
+
switch (n.value) {
|
|
19
|
+
case node_opcua_basic_types_1.DataType.Float:
|
|
20
|
+
case node_opcua_basic_types_1.DataType.Double:
|
|
21
|
+
case node_opcua_basic_types_1.DataType.Byte:
|
|
22
|
+
case node_opcua_basic_types_1.DataType.SByte:
|
|
23
|
+
case node_opcua_basic_types_1.DataType.Int16:
|
|
24
|
+
case node_opcua_basic_types_1.DataType.Int32:
|
|
25
|
+
case node_opcua_basic_types_1.DataType.Int64:
|
|
26
|
+
case node_opcua_basic_types_1.DataType.UInt16:
|
|
27
|
+
case node_opcua_basic_types_1.DataType.UInt32:
|
|
28
|
+
case node_opcua_basic_types_1.DataType.UInt64:
|
|
29
|
+
return true;
|
|
30
|
+
default:
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const dataType = node.addressSpace.findDataType(node.dataType);
|
|
35
|
+
const dataTypeNumber = node.addressSpace.findDataType("Number");
|
|
36
|
+
return dataType.isSubtypeOf(dataTypeNumber);
|
|
37
|
+
}
|
|
38
|
+
function __validateDataChangeFilter(filter, itemToMonitor, node) {
|
|
39
|
+
(0, node_opcua_assert_1.assert)(itemToMonitor.attributeId === node_opcua_data_model_1.AttributeIds.Value);
|
|
40
|
+
if (node.nodeClass !== node_opcua_data_model_2.NodeClass.Variable) {
|
|
41
|
+
return node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid;
|
|
42
|
+
}
|
|
43
|
+
if (filter.deadbandType !== node_opcua_service_subscription_1.DeadbandType.None) {
|
|
44
|
+
// if node is not Numerical=> DataChangeFilter
|
|
45
|
+
(0, node_opcua_assert_1.assert)(node.dataType instanceof node_opcua_nodeid_1.NodeId);
|
|
46
|
+
if (!isNumberDataType(node)) {
|
|
47
|
+
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (filter.deadbandType === node_opcua_service_subscription_1.DeadbandType.Percent) {
|
|
51
|
+
if (filter.deadbandValue < 0 || filter.deadbandValue > 100) {
|
|
52
|
+
return node_opcua_status_code_1.StatusCodes.BadDeadbandFilterInvalid;
|
|
53
|
+
}
|
|
54
|
+
// node must also have a valid euRange
|
|
55
|
+
if (!node.getChildByName("EURange", 0)) {
|
|
56
|
+
// tslint:disable:no-console
|
|
57
|
+
console.log(" node has no euRange ! Dead band Percent cannot be used on node " + node.nodeId.toString());
|
|
58
|
+
return node_opcua_status_code_1.StatusCodes.BadMonitoredItemFilterUnsupported;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return node_opcua_status_code_1.StatusCodes.Good;
|
|
62
|
+
}
|
|
63
|
+
function validateFilter(filter, itemToMonitor, node) {
|
|
64
|
+
// handle filter information
|
|
65
|
+
if (filter && filter instanceof node_opcua_service_filter_1.EventFilter && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.EventNotifier) {
|
|
66
|
+
// invalid filter on Event
|
|
67
|
+
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
68
|
+
}
|
|
69
|
+
if (filter && filter instanceof node_opcua_service_filter_1.DataChangeFilter && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.Value) {
|
|
70
|
+
// invalid DataChange filter on non Value Attribute
|
|
71
|
+
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
72
|
+
}
|
|
73
|
+
if (filter && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.EventNotifier && itemToMonitor.attributeId !== node_opcua_data_model_1.AttributeIds.Value) {
|
|
74
|
+
return node_opcua_status_code_1.StatusCodes.BadFilterNotAllowed;
|
|
75
|
+
}
|
|
76
|
+
if (filter instanceof node_opcua_service_filter_1.DataChangeFilter) {
|
|
77
|
+
return __validateDataChangeFilter(filter, itemToMonitor, node);
|
|
78
|
+
}
|
|
79
|
+
return node_opcua_status_code_1.StatusCodes.Good;
|
|
80
|
+
}
|
|
81
|
+
exports.validateFilter = validateFilter;
|
|
82
82
|
//# sourceMappingURL=validate_filter.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-server",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "pure nodejs OPCUA SDK - module
|
|
3
|
+
"version": "2.98.1",
|
|
4
|
+
"description": "pure nodejs OPCUA SDK - module server",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc -b",
|
|
7
7
|
"lint": "eslint source test",
|
|
@@ -17,57 +17,57 @@
|
|
|
17
17
|
"chalk": "4.1.2",
|
|
18
18
|
"dequeue": "^1.0.5",
|
|
19
19
|
"lodash": "4.17.21",
|
|
20
|
-
"node-opcua-address-space": "2.
|
|
21
|
-
"node-opcua-address-space-base": "2.
|
|
22
|
-
"node-opcua-assert": "2.
|
|
23
|
-
"node-opcua-basic-types": "2.
|
|
24
|
-
"node-opcua-binary-stream": "2.
|
|
25
|
-
"node-opcua-certificate-manager": "2.
|
|
26
|
-
"node-opcua-client": "2.
|
|
27
|
-
"node-opcua-client-dynamic-extension-object": "2.
|
|
28
|
-
"node-opcua-common": "2.
|
|
29
|
-
"node-opcua-constants": "2.
|
|
20
|
+
"node-opcua-address-space": "2.98.1",
|
|
21
|
+
"node-opcua-address-space-base": "2.98.1",
|
|
22
|
+
"node-opcua-assert": "2.98.1",
|
|
23
|
+
"node-opcua-basic-types": "2.98.1",
|
|
24
|
+
"node-opcua-binary-stream": "2.98.1",
|
|
25
|
+
"node-opcua-certificate-manager": "2.98.1",
|
|
26
|
+
"node-opcua-client": "2.98.1",
|
|
27
|
+
"node-opcua-client-dynamic-extension-object": "2.98.1",
|
|
28
|
+
"node-opcua-common": "2.98.1",
|
|
29
|
+
"node-opcua-constants": "2.98.1",
|
|
30
30
|
"node-opcua-crypto": "^2.1.2",
|
|
31
|
-
"node-opcua-data-model": "2.
|
|
32
|
-
"node-opcua-data-value": "2.
|
|
33
|
-
"node-opcua-date-time": "2.
|
|
34
|
-
"node-opcua-debug": "2.
|
|
35
|
-
"node-opcua-extension-object": "2.
|
|
36
|
-
"node-opcua-factory": "2.
|
|
37
|
-
"node-opcua-hostname": "2.
|
|
38
|
-
"node-opcua-nodeid": "2.
|
|
39
|
-
"node-opcua-nodesets": "2.
|
|
40
|
-
"node-opcua-numeric-range": "2.
|
|
41
|
-
"node-opcua-object-registry": "2.
|
|
42
|
-
"node-opcua-secure-channel": "2.
|
|
43
|
-
"node-opcua-service-browse": "2.
|
|
44
|
-
"node-opcua-service-call": "2.
|
|
45
|
-
"node-opcua-service-discovery": "2.
|
|
46
|
-
"node-opcua-service-endpoints": "2.
|
|
47
|
-
"node-opcua-service-filter": "2.
|
|
48
|
-
"node-opcua-service-history": "2.
|
|
49
|
-
"node-opcua-service-node-management": "2.
|
|
50
|
-
"node-opcua-service-query": "2.
|
|
51
|
-
"node-opcua-service-read": "2.
|
|
52
|
-
"node-opcua-service-register-node": "2.
|
|
53
|
-
"node-opcua-service-secure-channel": "2.
|
|
54
|
-
"node-opcua-service-session": "2.
|
|
55
|
-
"node-opcua-service-subscription": "2.
|
|
56
|
-
"node-opcua-service-translate-browse-path": "2.
|
|
57
|
-
"node-opcua-service-write": "2.
|
|
58
|
-
"node-opcua-status-code": "2.
|
|
59
|
-
"node-opcua-types": "2.
|
|
60
|
-
"node-opcua-utils": "2.
|
|
61
|
-
"node-opcua-variant": "2.
|
|
31
|
+
"node-opcua-data-model": "2.98.1",
|
|
32
|
+
"node-opcua-data-value": "2.98.1",
|
|
33
|
+
"node-opcua-date-time": "2.98.1",
|
|
34
|
+
"node-opcua-debug": "2.98.1",
|
|
35
|
+
"node-opcua-extension-object": "2.98.1",
|
|
36
|
+
"node-opcua-factory": "2.98.1",
|
|
37
|
+
"node-opcua-hostname": "2.98.1",
|
|
38
|
+
"node-opcua-nodeid": "2.98.1",
|
|
39
|
+
"node-opcua-nodesets": "2.98.1",
|
|
40
|
+
"node-opcua-numeric-range": "2.98.1",
|
|
41
|
+
"node-opcua-object-registry": "2.98.1",
|
|
42
|
+
"node-opcua-secure-channel": "2.98.1",
|
|
43
|
+
"node-opcua-service-browse": "2.98.1",
|
|
44
|
+
"node-opcua-service-call": "2.98.1",
|
|
45
|
+
"node-opcua-service-discovery": "2.98.1",
|
|
46
|
+
"node-opcua-service-endpoints": "2.98.1",
|
|
47
|
+
"node-opcua-service-filter": "2.98.1",
|
|
48
|
+
"node-opcua-service-history": "2.98.1",
|
|
49
|
+
"node-opcua-service-node-management": "2.98.1",
|
|
50
|
+
"node-opcua-service-query": "2.98.1",
|
|
51
|
+
"node-opcua-service-read": "2.98.1",
|
|
52
|
+
"node-opcua-service-register-node": "2.98.1",
|
|
53
|
+
"node-opcua-service-secure-channel": "2.98.1",
|
|
54
|
+
"node-opcua-service-session": "2.98.1",
|
|
55
|
+
"node-opcua-service-subscription": "2.98.1",
|
|
56
|
+
"node-opcua-service-translate-browse-path": "2.98.1",
|
|
57
|
+
"node-opcua-service-write": "2.98.1",
|
|
58
|
+
"node-opcua-status-code": "2.98.1",
|
|
59
|
+
"node-opcua-types": "2.98.1",
|
|
60
|
+
"node-opcua-utils": "2.98.1",
|
|
61
|
+
"node-opcua-variant": "2.98.1",
|
|
62
62
|
"thenify": "^3.3.1"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"node-opcua-data-access": "2.
|
|
66
|
-
"node-opcua-leak-detector": "2.
|
|
65
|
+
"node-opcua-data-access": "2.98.1",
|
|
66
|
+
"node-opcua-leak-detector": "2.98.1",
|
|
67
67
|
"node-opcua-pki": "^3.0.2",
|
|
68
|
-
"node-opcua-test-helpers": "2.
|
|
68
|
+
"node-opcua-test-helpers": "2.98.1",
|
|
69
69
|
"should": "^13.2.3",
|
|
70
|
-
"sinon": "^15.0.
|
|
70
|
+
"sinon": "^15.0.3",
|
|
71
71
|
"underscore": "^1.13.6"
|
|
72
72
|
},
|
|
73
73
|
"author": "Etienne Rossignon",
|
|
@@ -85,5 +85,9 @@
|
|
|
85
85
|
"internet of things"
|
|
86
86
|
],
|
|
87
87
|
"homepage": "http://node-opcua.github.io/",
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "07dcdd8e8c7f2b55544c6e23023093e35674829c",
|
|
89
|
+
"files": [
|
|
90
|
+
"dist",
|
|
91
|
+
"source"
|
|
92
|
+
]
|
|
89
93
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require("node-opcua-pki/bin/crypto_create_CA");
|