node-opcua-server 2.98.0 → 2.98.2

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 (92) hide show
  1. package/dist/base_server.d.ts +110 -0
  2. package/dist/base_server.js +491 -0
  3. package/dist/base_server.js.map +1 -0
  4. package/dist/factory.d.ts +12 -0
  5. package/dist/factory.js +24 -0
  6. package/dist/factory.js.map +1 -0
  7. package/dist/filter/check_where_clause_on_address_space.d.ts +3 -0
  8. package/dist/filter/check_where_clause_on_address_space.js +23 -0
  9. package/dist/filter/check_where_clause_on_address_space.js.map +1 -0
  10. package/dist/filter/extract_event_fields.d.ts +10 -0
  11. package/dist/filter/extract_event_fields.js +18 -0
  12. package/dist/filter/extract_event_fields.js.map +1 -0
  13. package/dist/helper.d.ts +10 -0
  14. package/dist/helper.js +76 -0
  15. package/dist/helper.js.map +1 -0
  16. package/dist/history_server_capabilities.d.ts +35 -0
  17. package/dist/history_server_capabilities.js +44 -0
  18. package/dist/history_server_capabilities.js.map +1 -0
  19. package/dist/i_channel_data.d.ts +13 -0
  20. package/dist/i_channel_data.js +3 -0
  21. package/dist/i_channel_data.js.map +1 -0
  22. package/dist/i_register_server_manager.d.ts +16 -0
  23. package/dist/i_register_server_manager.js +3 -0
  24. package/dist/i_register_server_manager.js.map +1 -0
  25. package/dist/i_server_side_publish_engine.d.ts +36 -0
  26. package/dist/i_server_side_publish_engine.js +50 -0
  27. package/dist/i_server_side_publish_engine.js.map +1 -0
  28. package/dist/i_socket_data.d.ts +11 -0
  29. package/dist/i_socket_data.js +3 -0
  30. package/dist/i_socket_data.js.map +1 -0
  31. package/dist/index.d.ts +16 -0
  32. package/dist/index.js +33 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/monitored_item.d.ts +188 -0
  35. package/dist/monitored_item.js +1113 -0
  36. package/dist/monitored_item.js.map +1 -0
  37. package/dist/node_sampler.d.ts +3 -0
  38. package/dist/node_sampler.js +80 -0
  39. package/dist/node_sampler.js.map +1 -0
  40. package/dist/opcua_server.d.ts +747 -0
  41. package/dist/opcua_server.js +2429 -0
  42. package/dist/opcua_server.js.map +1 -0
  43. package/dist/queue.d.ts +11 -0
  44. package/dist/queue.js +72 -0
  45. package/dist/queue.js.map +1 -0
  46. package/dist/register_server_manager.d.ts +96 -0
  47. package/dist/register_server_manager.js +585 -0
  48. package/dist/register_server_manager.js.map +1 -0
  49. package/dist/register_server_manager_hidden.d.ts +17 -0
  50. package/dist/register_server_manager_hidden.js +28 -0
  51. package/dist/register_server_manager_hidden.js.map +1 -0
  52. package/dist/register_server_manager_mdns_only.d.ts +22 -0
  53. package/dist/register_server_manager_mdns_only.js +56 -0
  54. package/dist/register_server_manager_mdns_only.js.map +1 -0
  55. package/dist/sampling_func.d.ts +3 -0
  56. package/dist/sampling_func.js +3 -0
  57. package/dist/sampling_func.js.map +1 -0
  58. package/dist/server_capabilities.d.ts +148 -0
  59. package/dist/server_capabilities.js +102 -0
  60. package/dist/server_capabilities.js.map +1 -0
  61. package/dist/server_end_point.d.ts +185 -0
  62. package/dist/server_end_point.js +841 -0
  63. package/dist/server_end_point.js.map +1 -0
  64. package/dist/server_engine.d.ts +318 -0
  65. package/dist/server_engine.js +1775 -0
  66. package/dist/server_engine.js.map +1 -0
  67. package/dist/server_publish_engine.d.ts +113 -0
  68. package/dist/server_publish_engine.js +542 -0
  69. package/dist/server_publish_engine.js.map +1 -0
  70. package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +16 -0
  71. package/dist/server_publish_engine_for_orphan_subscriptions.js +52 -0
  72. package/dist/server_publish_engine_for_orphan_subscriptions.js.map +1 -0
  73. package/dist/server_session.d.ts +185 -0
  74. package/dist/server_session.js +758 -0
  75. package/dist/server_session.js.map +1 -0
  76. package/dist/server_subscription.d.ts +421 -0
  77. package/dist/server_subscription.js +1348 -0
  78. package/dist/server_subscription.js.map +1 -0
  79. package/dist/sessions_compatible_for_transfer.d.ts +2 -0
  80. package/dist/sessions_compatible_for_transfer.js +40 -0
  81. package/dist/sessions_compatible_for_transfer.js.map +1 -0
  82. package/dist/user_manager.d.ts +32 -0
  83. package/dist/user_manager.js +99 -0
  84. package/dist/user_manager.js.map +1 -0
  85. package/dist/user_manager_ua.d.ts +3 -0
  86. package/dist/user_manager_ua.js +40 -0
  87. package/dist/user_manager_ua.js.map +1 -0
  88. package/dist/validate_filter.d.ts +5 -0
  89. package/dist/validate_filter.js +82 -0
  90. package/dist/validate_filter.js.map +1 -0
  91. package/package.json +51 -47
  92. package/test_helpers/create_certificates.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register_server_manager_hidden.js","sourceRoot":"","sources":["../source/register_server_manager_hidden.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mCAAsC;AAGtC;;;GAGG;AACH,MAAa,2BAA4B,SAAQ,qBAAY;IAGzD,YAAY,OAEX;QACG,KAAK,EAAE,CAAC;QALL,+BAA0B,GAAG,EAAE,CAAC;IAMvC,CAAC;IAEM,IAAI,CAAC,QAAoB;QAC5B,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,QAAoB;QAC7B,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAEM,OAAO;QACV,EAAE;IACN,CAAC;CACJ;AApBD,kEAoBC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module node-opcua-server
3
+ */
4
+ /// <reference types="node" />
5
+ import { EventEmitter } from "events";
6
+ import { OPCUABaseServer } from "./base_server";
7
+ import { IRegisterServerManager } from "./i_register_server_manager";
8
+ /**
9
+ * a RegisterServerManager that declare the server the OPCUA Bonjour service
10
+ * available on the current computer
11
+ */
12
+ export declare class RegisterServerManagerMDNSONLY extends EventEmitter implements IRegisterServerManager {
13
+ discoveryServerEndpointUrl: string;
14
+ private server?;
15
+ private bonjour;
16
+ constructor(options: {
17
+ server: OPCUABaseServer;
18
+ });
19
+ stop(callback: () => void): void;
20
+ start(callback: () => void): void;
21
+ dispose(): void;
22
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * @module node-opcua-server
4
+ */
5
+ // RegisterServerManagerMDNSONLY
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RegisterServerManagerMDNSONLY = void 0;
8
+ const events_1 = require("events");
9
+ const node_opcua_assert_1 = require("node-opcua-assert");
10
+ const node_opcua_service_discovery_1 = require("node-opcua-service-discovery");
11
+ const base_server_1 = require("./base_server");
12
+ /**
13
+ * a RegisterServerManager that declare the server the OPCUA Bonjour service
14
+ * available on the current computer
15
+ */
16
+ class RegisterServerManagerMDNSONLY extends events_1.EventEmitter {
17
+ constructor(options) {
18
+ super();
19
+ this.discoveryServerEndpointUrl = "";
20
+ this.server = options.server;
21
+ (0, node_opcua_assert_1.assert)(this.server);
22
+ (0, node_opcua_assert_1.assert)(this.server instanceof base_server_1.OPCUABaseServer);
23
+ this.bonjour = new node_opcua_service_discovery_1.BonjourHolder();
24
+ }
25
+ stop(callback) {
26
+ if (this.bonjour) {
27
+ this.bonjour.stopAnnouncedOnMulticastSubnetWithCallback(() => {
28
+ this.emit("serverUnregistered");
29
+ setImmediate(callback);
30
+ });
31
+ }
32
+ }
33
+ start(callback) {
34
+ // istanbul ignore next
35
+ if (!this.server) {
36
+ throw new Error("internal error");
37
+ }
38
+ (0, node_opcua_assert_1.assert)(this.server instanceof base_server_1.OPCUABaseServer);
39
+ this.bonjour.announcedOnMulticastSubnetWithCallback({
40
+ capabilities: this.server.capabilitiesForMDNS,
41
+ name: this.server.serverInfo.applicationUri,
42
+ path: "/",
43
+ port: this.server.endpoints[0].port
44
+ }, () => {
45
+ this.emit("serverRegistered");
46
+ setImmediate(callback);
47
+ });
48
+ }
49
+ dispose() {
50
+ (0, node_opcua_assert_1.assert)(!this.bonjour.isStarted());
51
+ (0, node_opcua_assert_1.assert)(this.server);
52
+ this.server = undefined;
53
+ }
54
+ }
55
+ exports.RegisterServerManagerMDNSONLY = RegisterServerManagerMDNSONLY;
56
+ //# sourceMappingURL=register_server_manager_mdns_only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register_server_manager_mdns_only.js","sourceRoot":"","sources":["../source/register_server_manager_mdns_only.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,gCAAgC;;;AAEhC,mCAAsC;AACtC,yDAA2C;AAC3C,+EAA6D;AAC7D,+CAAgD;AAGhD;;;GAGG;AACH,MAAa,6BAA8B,SAAQ,qBAAY;IAM3D,YAAY,OAAoC;QAC5C,KAAK,EAAE,CAAC;QANL,+BAA0B,GAAG,EAAE,CAAC;QAOnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAA,0BAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,IAAA,0BAAM,EAAC,IAAI,CAAC,MAAM,YAAY,6BAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,4CAAa,EAAE,CAAC;IACvC,CAAC;IAEM,IAAI,CAAC,QAAoB;QAC5B,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,GAAE,EAAE;gBACxD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAChC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEM,KAAK,CAAC,QAAoB;QAC7B,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;QACD,IAAA,0BAAM,EAAC,IAAI,CAAC,MAAM,YAAY,6BAAe,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;YAC7C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAe;YAC5C,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;SACtC,EAAE,GAAE,EAAE;YACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9B,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,OAAO;QACV,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAClC,IAAA,0BAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;CACJ;AA9CD,sEA8CC"}
@@ -0,0 +1,3 @@
1
+ import { ISessionContext } from "node-opcua-address-space-base";
2
+ import { DataValue } from "node-opcua-data-value";
3
+ export type SamplingFunc = (context: ISessionContext, dataValue: DataValue, callback: (err: Error | null, dataValue?: DataValue) => void) => void;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=sampling_func.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling_func.js","sourceRoot":"","sources":["../source/sampling_func.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * @module node-opcua-server
3
+ */
4
+ import { UInt32 } from "node-opcua-basic-types";
5
+ import { QualifiedName } from "node-opcua-data-model";
6
+ import { SignedSoftwareCertificate } from "node-opcua-types";
7
+ /**
8
+ */
9
+ export interface OperationLimitsOptions {
10
+ maxNodesPerRead?: number;
11
+ maxNodesPerBrowse?: number;
12
+ maxNodesPerWrite?: number;
13
+ maxNodesPerMethodCall?: number;
14
+ maxNodesPerRegisterNodes?: number;
15
+ maxNodesPerNodeManagement?: number;
16
+ maxMonitoredItemsPerCall?: number;
17
+ maxNodesPerHistoryReadData?: number;
18
+ maxNodesPerHistoryReadEvents?: number;
19
+ maxNodesPerHistoryUpdateData?: number;
20
+ maxNodesPerHistoryUpdateEvents?: number;
21
+ maxNodesPerTranslateBrowsePathsToNodeIds?: number;
22
+ }
23
+ export declare class OperationLimits {
24
+ maxNodesPerRead: number;
25
+ maxNodesPerBrowse: number;
26
+ maxNodesPerWrite: number;
27
+ maxNodesPerMethodCall: number;
28
+ maxNodesPerRegisterNodes: number;
29
+ maxNodesPerNodeManagement: number;
30
+ maxMonitoredItemsPerCall: number;
31
+ maxNodesPerHistoryReadData: number;
32
+ maxNodesPerHistoryReadEvents: number;
33
+ maxNodesPerHistoryUpdateData: number;
34
+ maxNodesPerHistoryUpdateEvents: number;
35
+ maxNodesPerTranslateBrowsePathsToNodeIds: number;
36
+ constructor(options: OperationLimitsOptions);
37
+ }
38
+ export interface IServerCapabilities {
39
+ maxBrowseContinuationPoints: number;
40
+ maxHistoryContinuationPoints: number;
41
+ maxStringLength: number;
42
+ maxArrayLength: number;
43
+ maxByteStringLength: number;
44
+ maxQueryContinuationPoints: number;
45
+ minSupportedSampleRate: number;
46
+ operationLimits: OperationLimitsOptions;
47
+ serverProfileArray: string[];
48
+ localeIdArray: string[];
49
+ softwareCertificates: SignedSoftwareCertificate[];
50
+ /**
51
+ * MaxSessions is an integer specifying the maximum number of concurrent
52
+ * Sessions the Server can support. The value specifies the
53
+ * maximum the Server can support under normal circumstances,
54
+ * therefore there is no guarantee the Server can always support
55
+ * the maximum.
56
+ */
57
+ maxSessions: UInt32;
58
+ /**
59
+ * MaxSubscriptions is an integer specifying the maximum number of
60
+ * Subscriptions the Server can support. The value specifies the
61
+ * maximum the Server can support under normal circumstances,
62
+ * therefore there is no guarantee the Server can always support
63
+ * the maximum.
64
+ */
65
+ maxSubscriptions: UInt32;
66
+ /**
67
+ * MaxMonitoredItems is an integer specifying the maximum number of
68
+ * MonitoredItems the Server can support. The value specifies the
69
+ * maximum the Server can support under normal circumstances,
70
+ * therefore there is no guarantee the Server can always support
71
+ * the maximum.
72
+ */
73
+ maxMonitoredItems: UInt32;
74
+ /**
75
+ * MaxSubscriptionsPerSession is an integer specifying the maximum number of
76
+ * Subscriptions per Session the Server can support. The value specifies the
77
+ * maximum the Server can support under normal circumstances,
78
+ * therefore there is no guarantee the Server can always support
79
+ * the maximum.
80
+ */
81
+ maxSubscriptionsPerSession: UInt32;
82
+ /**
83
+ * MaxMonitoredItemsPerSubscription is an integer specifying the maximum number of
84
+ * MonitoredItems per Subscription the Server can support. The value specifies the
85
+ * maximum the Server can support under normal circumstances,
86
+ * therefore there is no guarantee the Server can always support
87
+ * the maximum
88
+ */
89
+ maxMonitoredItemsPerSubscription: UInt32;
90
+ /**
91
+ * MaxSelectClauseParameters is an integer specifying the maximum number of
92
+ * EventField SelectClause Parameters the Server can support for an EventFilter.
93
+ * The value specifies the maximum the Server can support under normal circumstances,
94
+ * therefore there is no guarantee the Server can always support
95
+ * the maximum.
96
+ */
97
+ maxSelectClauseParameters: UInt32;
98
+ /**
99
+ * MaxWhereClauseParameters is an integer specifying the maximum number of
100
+ * EventField WhereClause Parameters the Server can support for an EventFilter.
101
+ * The value specifies the maximum the Server can support under normal circumstances,
102
+ * therefore there is no guarantee the Server can always support the maximum
103
+ */
104
+ maxWhereClauseParameters: UInt32;
105
+ /**
106
+ * (draft)
107
+ * MaxMonitoredItemsQueueSize is an integer specifying the maximum size of MonitoredItem
108
+ * queues. The value specifies the maximum the Server can support under normal circumstances,
109
+ * therefore there is no guarantee the Server can always support the maximum.
110
+ *
111
+ */
112
+ maxMonitoredItemsQueueSize: UInt32;
113
+ /**
114
+ *
115
+ * ConformanceUnits is a QualifiedName array specifying the set of conformance units
116
+ * the Server supports. This list should be limited to the ConformanceUnits the Server
117
+ * supports in its current configuration.
118
+ *
119
+ */
120
+ conformanceUnits: QualifiedName[];
121
+ }
122
+ export type ServerCapabilitiesOptions = Partial<IServerCapabilities>;
123
+ export declare const defaultServerCapabilities: IServerCapabilities;
124
+ /**
125
+ */
126
+ export declare class ServerCapabilities implements IServerCapabilities {
127
+ maxBrowseContinuationPoints: number;
128
+ maxHistoryContinuationPoints: number;
129
+ maxStringLength: number;
130
+ maxArrayLength: number;
131
+ maxByteStringLength: number;
132
+ maxQueryContinuationPoints: number;
133
+ minSupportedSampleRate: number;
134
+ operationLimits: OperationLimits;
135
+ serverProfileArray: string[];
136
+ localeIdArray: string[];
137
+ softwareCertificates: SignedSoftwareCertificate[];
138
+ maxSessions: UInt32;
139
+ maxSubscriptions: UInt32;
140
+ maxMonitoredItems: UInt32;
141
+ maxSubscriptionsPerSession: UInt32;
142
+ maxMonitoredItemsPerSubscription: UInt32;
143
+ maxSelectClauseParameters: UInt32;
144
+ maxWhereClauseParameters: UInt32;
145
+ maxMonitoredItemsQueueSize: UInt32;
146
+ conformanceUnits: QualifiedName[];
147
+ constructor(options: ServerCapabilitiesOptions);
148
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServerCapabilities = exports.defaultServerCapabilities = exports.OperationLimits = void 0;
4
+ const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
5
+ const node_opcua_debug_1 = require("node-opcua-debug");
6
+ const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
7
+ class OperationLimits {
8
+ constructor(options) {
9
+ this.maxNodesPerRead = options.maxNodesPerRead || 0;
10
+ this.maxNodesPerWrite = options.maxNodesPerWrite || 0;
11
+ this.maxNodesPerMethodCall = options.maxNodesPerMethodCall || 0;
12
+ this.maxNodesPerBrowse = options.maxNodesPerBrowse || 0;
13
+ this.maxNodesPerRegisterNodes = options.maxNodesPerRegisterNodes || 0;
14
+ this.maxNodesPerNodeManagement = options.maxNodesPerNodeManagement || 0;
15
+ this.maxMonitoredItemsPerCall = options.maxMonitoredItemsPerCall || 0;
16
+ this.maxNodesPerHistoryReadData = options.maxNodesPerHistoryReadData || 0;
17
+ this.maxNodesPerHistoryReadEvents = options.maxNodesPerHistoryReadEvents || 0;
18
+ this.maxNodesPerHistoryUpdateData = options.maxNodesPerHistoryUpdateData || 0;
19
+ this.maxNodesPerHistoryUpdateEvents = options.maxNodesPerHistoryUpdateEvents || 0;
20
+ this.maxNodesPerTranslateBrowsePathsToNodeIds = options.maxNodesPerTranslateBrowsePathsToNodeIds || 0;
21
+ }
22
+ }
23
+ exports.OperationLimits = OperationLimits;
24
+ exports.defaultServerCapabilities = {
25
+ maxBrowseContinuationPoints: 0,
26
+ maxHistoryContinuationPoints: 0,
27
+ maxStringLength: 16 * 1024 * 1024,
28
+ maxArrayLength: 1024 * 1024,
29
+ maxByteStringLength: 16 * 1024 * 1024,
30
+ maxQueryContinuationPoints: 0,
31
+ minSupportedSampleRate: 100,
32
+ operationLimits: {
33
+ maxNodesPerBrowse: 0,
34
+ maxNodesPerHistoryReadData: 0,
35
+ maxNodesPerHistoryReadEvents: 0,
36
+ maxNodesPerHistoryUpdateData: 0,
37
+ maxNodesPerHistoryUpdateEvents: 0,
38
+ maxNodesPerMethodCall: 0,
39
+ maxNodesPerNodeManagement: 0,
40
+ maxNodesPerRead: 0,
41
+ maxNodesPerRegisterNodes: 0,
42
+ maxNodesPerWrite: 0,
43
+ maxNodesPerTranslateBrowsePathsToNodeIds: 0,
44
+ maxMonitoredItemsPerCall: 0
45
+ },
46
+ serverProfileArray: [],
47
+ localeIdArray: [],
48
+ softwareCertificates: [],
49
+ maxSessions: 10,
50
+ maxSubscriptions: 100,
51
+ maxMonitoredItems: 1000000,
52
+ maxSubscriptionsPerSession: 10,
53
+ maxMonitoredItemsPerSubscription: 100000,
54
+ maxSelectClauseParameters: 100,
55
+ maxWhereClauseParameters: 100,
56
+ maxMonitoredItemsQueueSize: 60000,
57
+ conformanceUnits: []
58
+ };
59
+ /**
60
+ */
61
+ class ServerCapabilities {
62
+ // eslint-disable-next-line complexity
63
+ constructor(options) {
64
+ options = options || {};
65
+ options.operationLimits = options.operationLimits || {};
66
+ this.serverProfileArray = options.serverProfileArray || [];
67
+ this.localeIdArray = options.localeIdArray || [];
68
+ this.softwareCertificates = options.softwareCertificates || [];
69
+ this.maxArrayLength = options.maxArrayLength || exports.defaultServerCapabilities.maxArrayLength;
70
+ this.maxStringLength = options.maxStringLength || exports.defaultServerCapabilities.maxStringLength;
71
+ this.maxByteStringLength = options.maxByteStringLength || exports.defaultServerCapabilities.maxByteStringLength;
72
+ if (node_opcua_binary_stream_1.BinaryStream.maxStringLength < this.maxStringLength) {
73
+ warningLog(`ServerCapabilities.maxStringLength ${this.maxStringLength} is greater that the allowed limite BinaryStream.maxStringLength = ${node_opcua_binary_stream_1.BinaryStream.maxStringLength}\nPlease adjust the value.`);
74
+ }
75
+ if (node_opcua_binary_stream_1.BinaryStream.maxByteStringLength < this.maxByteStringLength) {
76
+ warningLog(`ServerCapabilities.maxByteStringLength ${this.maxByteStringLength} is greater that the allowed limite BinaryStream.maxByteStringLength = ${node_opcua_binary_stream_1.BinaryStream.maxByteStringLength}\nPlease adjust the value.`);
77
+ }
78
+ this.maxBrowseContinuationPoints =
79
+ options.maxBrowseContinuationPoints || exports.defaultServerCapabilities.maxBrowseContinuationPoints;
80
+ this.maxQueryContinuationPoints =
81
+ options.maxQueryContinuationPoints || exports.defaultServerCapabilities.maxQueryContinuationPoints;
82
+ this.maxHistoryContinuationPoints =
83
+ options.maxHistoryContinuationPoints || exports.defaultServerCapabilities.maxHistoryContinuationPoints;
84
+ this.operationLimits = new OperationLimits(options.operationLimits);
85
+ this.minSupportedSampleRate = options.minSupportedSampleRate || exports.defaultServerCapabilities.minSupportedSampleRate; // to do adjust me
86
+ // new in 1.05
87
+ this.maxSessions = options.maxSessions || exports.defaultServerCapabilities.maxSessions;
88
+ this.maxSubscriptionsPerSession =
89
+ options.maxSubscriptionsPerSession || exports.defaultServerCapabilities.maxSubscriptionsPerSession;
90
+ this.maxSubscriptions = options.maxSubscriptions || exports.defaultServerCapabilities.maxSubscriptions;
91
+ this.maxMonitoredItems = options.maxMonitoredItems || exports.defaultServerCapabilities.maxMonitoredItems;
92
+ this.maxMonitoredItemsPerSubscription =
93
+ options.maxMonitoredItemsPerSubscription || exports.defaultServerCapabilities.maxMonitoredItemsPerSubscription;
94
+ this.maxSelectClauseParameters = options.maxSelectClauseParameters || exports.defaultServerCapabilities.maxSelectClauseParameters;
95
+ this.maxWhereClauseParameters = options.maxWhereClauseParameters || exports.defaultServerCapabilities.maxWhereClauseParameters;
96
+ this.maxMonitoredItemsQueueSize =
97
+ options.maxMonitoredItemsQueueSize || exports.defaultServerCapabilities.maxMonitoredItemsQueueSize;
98
+ this.conformanceUnits = options.conformanceUnits || exports.defaultServerCapabilities.conformanceUnits;
99
+ }
100
+ }
101
+ exports.ServerCapabilities = ServerCapabilities;
102
+ //# sourceMappingURL=server_capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_capabilities.js","sourceRoot":"","sources":["../source/server_capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * @module node-opcua-server
4
+ */
5
+ import { EventEmitter } from "events";
6
+ import { OPCUACertificateManager } from "node-opcua-certificate-manager";
7
+ import { Certificate, PrivateKey } from "node-opcua-crypto";
8
+ import { MessageSecurityMode, SecurityPolicy, ServerSecureChannelLayer, ServerSecureChannelParent } from "node-opcua-secure-channel";
9
+ import { UserTokenType } from "node-opcua-service-endpoints";
10
+ import { EndpointDescription } from "node-opcua-service-endpoints";
11
+ import { ApplicationDescription } from "node-opcua-service-endpoints";
12
+ export interface OPCUAServerEndPointOptions {
13
+ /**
14
+ * the tcp port
15
+ */
16
+ port: number;
17
+ /**
18
+ * the DER certificate chain
19
+ */
20
+ certificateChain: Certificate;
21
+ /**
22
+ * privateKey
23
+ */
24
+ privateKey: PrivateKey;
25
+ certificateManager: OPCUACertificateManager;
26
+ /**
27
+ * the default secureToken lifetime @default=60000
28
+ */
29
+ defaultSecureTokenLifetime?: number;
30
+ /**
31
+ * the maximum number of connection allowed on the TCP server socket
32
+ * @default 20
33
+ */
34
+ maxConnections?: number;
35
+ /**
36
+ * the timeout for the TCP HEL/ACK transaction (in ms)
37
+ * @default 30000
38
+ */
39
+ timeout?: number;
40
+ serverInfo: ApplicationDescription;
41
+ objectFactory?: any;
42
+ }
43
+ export interface EndpointDescriptionParams {
44
+ restricted?: boolean;
45
+ allowUnsecurePassword?: boolean;
46
+ resourcePath?: string;
47
+ alternateHostname?: string[];
48
+ hostname: string;
49
+ securityPolicies: SecurityPolicy[];
50
+ userTokenTypes: UserTokenType[];
51
+ }
52
+ export interface AddStandardEndpointDescriptionsParam {
53
+ allowAnonymous?: boolean;
54
+ disableDiscovery?: boolean;
55
+ securityModes?: MessageSecurityMode[];
56
+ restricted?: boolean;
57
+ allowUnsecurePassword?: boolean;
58
+ resourcePath?: string;
59
+ alternateHostname?: string[];
60
+ hostname?: string;
61
+ securityPolicies?: SecurityPolicy[];
62
+ userTokenTypes?: UserTokenType[];
63
+ }
64
+ /**
65
+ * OPCUAServerEndPoint a Server EndPoint.
66
+ * A sever end point is listening to one port
67
+ * note:
68
+ * see OPCUA Release 1.03 part 4 page 108 7.1 ApplicationDescription
69
+ */
70
+ export declare class OPCUAServerEndPoint extends EventEmitter implements ServerSecureChannelParent {
71
+ /**
72
+ * the tcp port
73
+ */
74
+ port: number;
75
+ certificateManager: OPCUACertificateManager;
76
+ defaultSecureTokenLifetime: number;
77
+ maxConnections: number;
78
+ timeout: number;
79
+ bytesWrittenInOldChannels: number;
80
+ bytesReadInOldChannels: number;
81
+ transactionsCountOldChannels: number;
82
+ securityTokenCountOldChannels: number;
83
+ serverInfo: ApplicationDescription;
84
+ objectFactory: any;
85
+ _on_new_channel?: (channel: ServerSecureChannelLayer) => void;
86
+ _on_close_channel?: (channel: ServerSecureChannelLayer) => void;
87
+ _on_connectionRefused?: (socketData: any) => void;
88
+ _on_openSecureChannelFailure?: (socketData: any, channelData: any) => void;
89
+ private _certificateChain;
90
+ private _privateKey;
91
+ private _channels;
92
+ private _server?;
93
+ private _endpoints;
94
+ private _listen_callback?;
95
+ private _started;
96
+ private _counter;
97
+ private _policy_deduplicator;
98
+ constructor(options: OPCUAServerEndPointOptions);
99
+ dispose(): void;
100
+ toString(): string;
101
+ getChannels(): ServerSecureChannelLayer[];
102
+ /**
103
+ * Returns the X509 DER form of the server certificate
104
+ */
105
+ getCertificate(): Certificate;
106
+ /**
107
+ * Returns the X509 DER form of the server certificate
108
+ */
109
+ getCertificateChain(): Certificate;
110
+ /**
111
+ * the private key
112
+ */
113
+ getPrivateKey(): PrivateKey;
114
+ /**
115
+ * The number of active channel on this end point.
116
+ */
117
+ get currentChannelCount(): number;
118
+ /**
119
+ * @method getEndpointDescription
120
+ * @param securityMode
121
+ * @param securityPolicy
122
+ * @return endpoint_description {EndpointDescription|null}
123
+ */
124
+ getEndpointDescription(securityMode: MessageSecurityMode, securityPolicy: SecurityPolicy, endpointUrl: string | null): EndpointDescription | null;
125
+ addEndpointDescription(securityMode: MessageSecurityMode, securityPolicy: SecurityPolicy, options: EndpointDescriptionParams): void;
126
+ addRestrictedEndpointDescription(options: EndpointDescriptionParams): void;
127
+ addStandardEndpointDescriptions(options?: AddStandardEndpointDescriptionsParam): void;
128
+ /**
129
+ * returns the list of end point descriptions.
130
+ */
131
+ endpointDescriptions(): EndpointDescription[];
132
+ /**
133
+ * @method listen
134
+ * @async
135
+ */
136
+ listen(callback: (err?: Error) => void): void;
137
+ killClientSockets(callback: (err?: Error) => void): void;
138
+ suspendConnection(callback: (err?: Error) => void): void;
139
+ restoreConnection(callback: (err?: Error) => void): void;
140
+ abruptlyInterruptChannels(): void;
141
+ /**
142
+ * @method shutdown
143
+ * @async
144
+ */
145
+ shutdown(callback: (err?: Error) => void): void;
146
+ /**
147
+ * @method start
148
+ * @async
149
+ * @param callback
150
+ */
151
+ start(callback: (err?: Error) => void): void;
152
+ get bytesWritten(): number;
153
+ get bytesRead(): number;
154
+ get transactionsCount(): number;
155
+ get securityTokenCount(): number;
156
+ get activeChannelCount(): number;
157
+ private _dump_statistics;
158
+ private _setup_server;
159
+ private _on_client_connection;
160
+ private _preregisterChannel;
161
+ private _un_pre_registerChannel;
162
+ /**
163
+ * @method _registerChannel
164
+ * @param channel
165
+ * @private
166
+ */
167
+ private _registerChannel;
168
+ /**
169
+ * @method _unregisterChannel
170
+ * @param channel
171
+ * @private
172
+ */
173
+ private _unregisterChannel;
174
+ private _end_listen;
175
+ /**
176
+ * shutdown_channel
177
+ * @param channel
178
+ * @param inner_callback
179
+ */
180
+ private shutdown_channel;
181
+ /**
182
+ * @private
183
+ */
184
+ private _prevent_DDOS_Attack;
185
+ }