node-opcua-server 2.51.0
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/.mocharc.yml +10 -0
- package/LICENSE +20 -0
- package/dist/base_server.d.ts +110 -0
- package/dist/base_server.js +476 -0
- package/dist/base_server.js.map +1 -0
- package/dist/factory.d.ts +10 -0
- package/dist/factory.js +24 -0
- package/dist/factory.js.map +1 -0
- package/dist/history_server_capabilities.d.ts +35 -0
- package/dist/history_server_capabilities.js +44 -0
- package/dist/history_server_capabilities.js.map +1 -0
- package/dist/i_channel_data.d.ts +13 -0
- package/dist/i_channel_data.js +3 -0
- package/dist/i_channel_data.js.map +1 -0
- package/dist/i_register_server_manager.d.ts +16 -0
- package/dist/i_register_server_manager.js +3 -0
- package/dist/i_register_server_manager.js.map +1 -0
- package/dist/i_server_side_publish_engine.d.ts +36 -0
- package/dist/i_server_side_publish_engine.js +50 -0
- package/dist/i_server_side_publish_engine.js.map +1 -0
- package/dist/i_socket_data.d.ts +11 -0
- package/dist/i_socket_data.js +3 -0
- package/dist/i_socket_data.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/monitored_item.d.ts +173 -0
- package/dist/monitored_item.js +1006 -0
- package/dist/monitored_item.js.map +1 -0
- package/dist/node_sampler.d.ts +3 -0
- package/dist/node_sampler.js +76 -0
- package/dist/node_sampler.js.map +1 -0
- package/dist/opcua_server.d.ts +668 -0
- package/dist/opcua_server.js +2407 -0
- package/dist/opcua_server.js.map +1 -0
- package/dist/queue.d.ts +11 -0
- package/dist/queue.js +71 -0
- package/dist/queue.js.map +1 -0
- package/dist/register_server_manager.d.ts +92 -0
- package/dist/register_server_manager.js +574 -0
- package/dist/register_server_manager.js.map +1 -0
- package/dist/register_server_manager_hidden.d.ts +17 -0
- package/dist/register_server_manager_hidden.js +28 -0
- package/dist/register_server_manager_hidden.js.map +1 -0
- package/dist/register_server_manager_mdns_only.d.ts +19 -0
- package/dist/register_server_manager_mdns_only.js +58 -0
- package/dist/register_server_manager_mdns_only.js.map +1 -0
- package/dist/server_capabilities.d.ts +61 -0
- package/dist/server_capabilities.js +109 -0
- package/dist/server_capabilities.js.map +1 -0
- package/dist/server_end_point.d.ts +180 -0
- package/dist/server_end_point.js +825 -0
- package/dist/server_end_point.js.map +1 -0
- package/dist/server_engine.d.ts +311 -0
- package/dist/server_engine.js +1659 -0
- package/dist/server_engine.js.map +1 -0
- package/dist/server_publish_engine.d.ts +109 -0
- package/dist/server_publish_engine.js +531 -0
- package/dist/server_publish_engine.js.map +1 -0
- package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +16 -0
- package/dist/server_publish_engine_for_orphan_subscriptions.js +50 -0
- package/dist/server_publish_engine_for_orphan_subscriptions.js.map +1 -0
- package/dist/server_session.d.ts +176 -0
- package/dist/server_session.js +734 -0
- package/dist/server_session.js.map +1 -0
- package/dist/server_subscription.d.ts +393 -0
- package/dist/server_subscription.js +1313 -0
- package/dist/server_subscription.js.map +1 -0
- package/dist/sessions_compatible_for_transfer.d.ts +2 -0
- package/dist/sessions_compatible_for_transfer.js +36 -0
- package/dist/sessions_compatible_for_transfer.js.map +1 -0
- package/dist/validate_filter.d.ts +5 -0
- package/dist/validate_filter.js +64 -0
- package/dist/validate_filter.js.map +1 -0
- package/package.json +88 -0
- package/source/base_server.ts +617 -0
- package/source/factory.ts +25 -0
- package/source/history_server_capabilities.ts +75 -0
- package/source/i_channel_data.ts +17 -0
- package/source/i_register_server_manager.ts +24 -0
- package/source/i_server_side_publish_engine.ts +77 -0
- package/source/i_socket_data.ts +11 -0
- package/source/index.ts +14 -0
- package/source/monitored_item.ts +1303 -0
- package/source/node_sampler.ts +82 -0
- package/source/opcua_server.ts +3742 -0
- package/source/queue.ts +73 -0
- package/source/register_server_manager.ts +744 -0
- package/source/register_server_manager_hidden.ts +33 -0
- package/source/register_server_manager_mdns_only.ts +69 -0
- package/source/server_capabilities.ts +177 -0
- package/source/server_end_point.ts +1182 -0
- package/source/server_engine.ts +2167 -0
- package/source/server_publish_engine.ts +657 -0
- package/source/server_publish_engine_for_orphan_subscriptions.ts +52 -0
- package/source/server_session.ts +931 -0
- package/source/server_subscription.ts +1792 -0
- package/source/sessions_compatible_for_transfer.ts +33 -0
- package/source/validate_filter.ts +86 -0
- package/test_helpers/create_certificates.js +1 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-server
|
|
3
|
+
*/
|
|
4
|
+
import { EventEmitter } from "events";
|
|
5
|
+
import { IRegisterServerManager } from "./i_register_server_manager";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* a IRegisterServerManager that hides the server from any local discover server
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export class RegisterServerManagerHidden
|
|
12
|
+
extends EventEmitter
|
|
13
|
+
implements IRegisterServerManager {
|
|
14
|
+
|
|
15
|
+
public discoveryServerEndpointUrl: string = "";
|
|
16
|
+
|
|
17
|
+
constructor(options?: any) {
|
|
18
|
+
super();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public stop(callback: () => void) {
|
|
22
|
+
setImmediate(callback);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public start(callback: () => void) {
|
|
26
|
+
setImmediate(callback);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public dispose() {
|
|
30
|
+
//
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-server
|
|
3
|
+
*/
|
|
4
|
+
// RegisterServerManagerMDNSONLY
|
|
5
|
+
|
|
6
|
+
import { EventEmitter } from "events";
|
|
7
|
+
import { assert } from "node-opcua-assert";
|
|
8
|
+
import {
|
|
9
|
+
BonjourHolder
|
|
10
|
+
} from "node-opcua-service-discovery";
|
|
11
|
+
import { OPCUABaseServer } from "./base_server";
|
|
12
|
+
import { IRegisterServerManager } from "./i_register_server_manager";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* a RegisterServerManager that declare the server the OPCUA Bonjour service
|
|
16
|
+
* available on the current computer
|
|
17
|
+
*/
|
|
18
|
+
export class RegisterServerManagerMDNSONLY
|
|
19
|
+
extends EventEmitter
|
|
20
|
+
implements IRegisterServerManager {
|
|
21
|
+
|
|
22
|
+
public discoveryServerEndpointUrl: string = "";
|
|
23
|
+
|
|
24
|
+
private server?: OPCUABaseServer;
|
|
25
|
+
private bonjour: BonjourHolder;
|
|
26
|
+
|
|
27
|
+
constructor(options: any) {
|
|
28
|
+
super();
|
|
29
|
+
this.server = options.server;
|
|
30
|
+
assert(this.server);
|
|
31
|
+
assert(this.server instanceof OPCUABaseServer);
|
|
32
|
+
this.bonjour = new BonjourHolder();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public stop(callback: () => void) {
|
|
36
|
+
if (this.bonjour) {
|
|
37
|
+
this.bonjour._stop_announcedOnMulticastSubnet();
|
|
38
|
+
}
|
|
39
|
+
setImmediate(() => {
|
|
40
|
+
this.emit("serverUnregistered");
|
|
41
|
+
setImmediate(callback);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public start(callback: () => void) {
|
|
46
|
+
// istanbul ignore next
|
|
47
|
+
if (!this.server) {
|
|
48
|
+
throw new Error("internal error");
|
|
49
|
+
}
|
|
50
|
+
assert(this.server instanceof OPCUABaseServer);
|
|
51
|
+
|
|
52
|
+
this.bonjour._announcedOnMulticastSubnet({
|
|
53
|
+
capabilities: this.server.capabilitiesForMDNS,
|
|
54
|
+
name: this.server.serverInfo.applicationUri!,
|
|
55
|
+
path: "/", // <- to do
|
|
56
|
+
port: this.server.endpoints[0].port,
|
|
57
|
+
});
|
|
58
|
+
setImmediate(() => {
|
|
59
|
+
this.emit("serverRegistered");
|
|
60
|
+
setImmediate(callback);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public dispose() {
|
|
65
|
+
assert(!this.bonjour.isStarted());
|
|
66
|
+
assert(this.server);
|
|
67
|
+
this.server = undefined;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-server
|
|
3
|
+
*/
|
|
4
|
+
// tslint:disable:max-classes-per-file
|
|
5
|
+
import { Certificate } from "node-opcua-crypto";
|
|
6
|
+
import { SignedSoftwareCertificate } from "node-opcua-types";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
*/
|
|
10
|
+
export interface OperationLimitsOptions {
|
|
11
|
+
maxNodesPerRead?: number;
|
|
12
|
+
maxNodesPerBrowse?: number;
|
|
13
|
+
maxNodesPerWrite?: number;
|
|
14
|
+
maxNodesPerMethodCall?: number;
|
|
15
|
+
maxNodesPerRegisterNodes?: number;
|
|
16
|
+
maxNodesPerNodeManagement?: number;
|
|
17
|
+
maxMonitoredItemsPerCall?: number;
|
|
18
|
+
maxNodesPerHistoryReadData?: number;
|
|
19
|
+
maxNodesPerHistoryReadEvents?: number;
|
|
20
|
+
maxNodesPerHistoryUpdateData?: number;
|
|
21
|
+
maxNodesPerHistoryUpdateEvents?: number;
|
|
22
|
+
maxNodesPerTranslateBrowsePathsToNodeIds?: number;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class OperationLimits {
|
|
26
|
+
|
|
27
|
+
public maxNodesPerRead: number;
|
|
28
|
+
public maxNodesPerBrowse: number;
|
|
29
|
+
public maxNodesPerWrite: number;
|
|
30
|
+
public maxNodesPerMethodCall: number;
|
|
31
|
+
public maxNodesPerRegisterNodes: number;
|
|
32
|
+
public maxNodesPerNodeManagement: number;
|
|
33
|
+
public maxMonitoredItemsPerCall: number;
|
|
34
|
+
public maxNodesPerHistoryReadData: number;
|
|
35
|
+
public maxNodesPerHistoryReadEvents: number;
|
|
36
|
+
public maxNodesPerHistoryUpdateData: number;
|
|
37
|
+
public maxNodesPerHistoryUpdateEvents: number;
|
|
38
|
+
public maxNodesPerTranslateBrowsePathsToNodeIds: number;
|
|
39
|
+
|
|
40
|
+
constructor(options: OperationLimitsOptions) {
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @property maxNodesPerRead
|
|
44
|
+
* @default 0
|
|
45
|
+
*/
|
|
46
|
+
this.maxNodesPerRead = options.maxNodesPerRead || 0;
|
|
47
|
+
/**
|
|
48
|
+
* @property maxNodesPerWrite
|
|
49
|
+
* @default 0
|
|
50
|
+
*/
|
|
51
|
+
this.maxNodesPerWrite = options.maxNodesPerWrite || 0;
|
|
52
|
+
/**
|
|
53
|
+
* @property maxNodesPerMethodCall
|
|
54
|
+
* @default 0
|
|
55
|
+
*/
|
|
56
|
+
this.maxNodesPerMethodCall = options.maxNodesPerMethodCall || 0;
|
|
57
|
+
/**
|
|
58
|
+
* @property maxNodesPerBrowse
|
|
59
|
+
* @default 0
|
|
60
|
+
*/
|
|
61
|
+
this.maxNodesPerBrowse = options.maxNodesPerBrowse || 0;
|
|
62
|
+
/**
|
|
63
|
+
* @property maxNodesPerRegisterNodes
|
|
64
|
+
* @default 0
|
|
65
|
+
*/
|
|
66
|
+
this.maxNodesPerRegisterNodes = options.maxNodesPerRegisterNodes || 0;
|
|
67
|
+
/**
|
|
68
|
+
* @property maxNodesPerNodeManagement
|
|
69
|
+
* @default 0
|
|
70
|
+
*/
|
|
71
|
+
this.maxNodesPerNodeManagement = options.maxNodesPerNodeManagement || 0;
|
|
72
|
+
/**
|
|
73
|
+
* @property maxMonitoredItemsPerCall
|
|
74
|
+
* @default 0
|
|
75
|
+
*/
|
|
76
|
+
this.maxMonitoredItemsPerCall = options.maxMonitoredItemsPerCall || 0;
|
|
77
|
+
/**
|
|
78
|
+
* @property maxNodesPerHistoryReadData
|
|
79
|
+
*/
|
|
80
|
+
this.maxNodesPerHistoryReadData = options.maxNodesPerHistoryReadData || 0;
|
|
81
|
+
/**
|
|
82
|
+
* @property maxNodesPerHistoryReadEvents
|
|
83
|
+
* @default 0
|
|
84
|
+
*/
|
|
85
|
+
this.maxNodesPerHistoryReadEvents = options.maxNodesPerHistoryReadEvents || 0;
|
|
86
|
+
/**
|
|
87
|
+
* @property maxNodesPerHistoryUpdateData
|
|
88
|
+
* @default 0
|
|
89
|
+
*/
|
|
90
|
+
this.maxNodesPerHistoryUpdateData = options.maxNodesPerHistoryUpdateData || 0;
|
|
91
|
+
/**
|
|
92
|
+
* @property maxNodesPerHistoryUpdateEvents
|
|
93
|
+
* @default 0
|
|
94
|
+
*/
|
|
95
|
+
this.maxNodesPerHistoryUpdateEvents = options.maxNodesPerHistoryUpdateEvents || 0;
|
|
96
|
+
/**
|
|
97
|
+
* @property maxNodesPerTranslateBrowsePathsToNodeIds
|
|
98
|
+
* @default 0
|
|
99
|
+
*/
|
|
100
|
+
this.maxNodesPerTranslateBrowsePathsToNodeIds = options.maxNodesPerTranslateBrowsePathsToNodeIds || 0;
|
|
101
|
+
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface ServerCapabilitiesOptions {
|
|
106
|
+
maxBrowseContinuationPoints?: number;
|
|
107
|
+
maxHistoryContinuationPoints?: number;
|
|
108
|
+
maxStringLength?: number;
|
|
109
|
+
maxArrayLength?: number;
|
|
110
|
+
maxByteStringLength?: number;
|
|
111
|
+
maxQueryContinuationPoints?: number;
|
|
112
|
+
minSupportedSampleRate?: number;
|
|
113
|
+
operationLimits?: OperationLimitsOptions;
|
|
114
|
+
|
|
115
|
+
serverProfileArray?: string[];
|
|
116
|
+
localeIdArray?: string[];
|
|
117
|
+
softwareCertificates?: SignedSoftwareCertificate[];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
*/
|
|
122
|
+
export class ServerCapabilities {
|
|
123
|
+
|
|
124
|
+
public maxBrowseContinuationPoints: number;
|
|
125
|
+
public maxHistoryContinuationPoints: number;
|
|
126
|
+
public maxStringLength: number;
|
|
127
|
+
public maxArrayLength: number;
|
|
128
|
+
public maxByteStringLength: number;
|
|
129
|
+
public maxQueryContinuationPoints: number;
|
|
130
|
+
public minSupportedSampleRate: number;
|
|
131
|
+
public operationLimits: OperationLimits;
|
|
132
|
+
|
|
133
|
+
public serverProfileArray: string[];
|
|
134
|
+
public localeIdArray: string[];
|
|
135
|
+
public softwareCertificates: SignedSoftwareCertificate[];
|
|
136
|
+
|
|
137
|
+
constructor(options: ServerCapabilitiesOptions) {
|
|
138
|
+
|
|
139
|
+
options = options || {};
|
|
140
|
+
options.operationLimits = options.operationLimits || {};
|
|
141
|
+
|
|
142
|
+
this.serverProfileArray = options.serverProfileArray || [];
|
|
143
|
+
this.localeIdArray = options.localeIdArray || [];
|
|
144
|
+
this.softwareCertificates = options.softwareCertificates || [];
|
|
145
|
+
/**
|
|
146
|
+
* @property maxArrayLength
|
|
147
|
+
*/
|
|
148
|
+
this.maxArrayLength = options.maxArrayLength || 0;
|
|
149
|
+
/**
|
|
150
|
+
* @property maxStringLength
|
|
151
|
+
*/
|
|
152
|
+
this.maxStringLength = options.maxStringLength || 0;
|
|
153
|
+
/**
|
|
154
|
+
* @property maxByteStringLength
|
|
155
|
+
*/
|
|
156
|
+
this.maxByteStringLength = options.maxByteStringLength || 0;
|
|
157
|
+
/**
|
|
158
|
+
* @property maxBrowseContinuationPoints
|
|
159
|
+
*/
|
|
160
|
+
this.maxBrowseContinuationPoints = options.maxBrowseContinuationPoints || 0;
|
|
161
|
+
/**
|
|
162
|
+
* @property maxQueryContinuationPoints
|
|
163
|
+
*/
|
|
164
|
+
this.maxQueryContinuationPoints = options.maxQueryContinuationPoints || 0;
|
|
165
|
+
/**
|
|
166
|
+
* @property maxHistoryContinuationPoints
|
|
167
|
+
*/
|
|
168
|
+
this.maxHistoryContinuationPoints = options.maxHistoryContinuationPoints || 0;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @property operationLimits
|
|
172
|
+
*/
|
|
173
|
+
this.operationLimits = new OperationLimits(options.operationLimits);
|
|
174
|
+
|
|
175
|
+
this.minSupportedSampleRate = 100; // to do adjust me
|
|
176
|
+
}
|
|
177
|
+
}
|