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.
Files changed (100) hide show
  1. package/.mocharc.yml +10 -0
  2. package/LICENSE +20 -0
  3. package/dist/base_server.d.ts +110 -0
  4. package/dist/base_server.js +476 -0
  5. package/dist/base_server.js.map +1 -0
  6. package/dist/factory.d.ts +10 -0
  7. package/dist/factory.js +24 -0
  8. package/dist/factory.js.map +1 -0
  9. package/dist/history_server_capabilities.d.ts +35 -0
  10. package/dist/history_server_capabilities.js +44 -0
  11. package/dist/history_server_capabilities.js.map +1 -0
  12. package/dist/i_channel_data.d.ts +13 -0
  13. package/dist/i_channel_data.js +3 -0
  14. package/dist/i_channel_data.js.map +1 -0
  15. package/dist/i_register_server_manager.d.ts +16 -0
  16. package/dist/i_register_server_manager.js +3 -0
  17. package/dist/i_register_server_manager.js.map +1 -0
  18. package/dist/i_server_side_publish_engine.d.ts +36 -0
  19. package/dist/i_server_side_publish_engine.js +50 -0
  20. package/dist/i_server_side_publish_engine.js.map +1 -0
  21. package/dist/i_socket_data.d.ts +11 -0
  22. package/dist/i_socket_data.js +3 -0
  23. package/dist/i_socket_data.js.map +1 -0
  24. package/dist/index.d.ts +14 -0
  25. package/dist/index.js +27 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/monitored_item.d.ts +173 -0
  28. package/dist/monitored_item.js +1006 -0
  29. package/dist/monitored_item.js.map +1 -0
  30. package/dist/node_sampler.d.ts +3 -0
  31. package/dist/node_sampler.js +76 -0
  32. package/dist/node_sampler.js.map +1 -0
  33. package/dist/opcua_server.d.ts +668 -0
  34. package/dist/opcua_server.js +2407 -0
  35. package/dist/opcua_server.js.map +1 -0
  36. package/dist/queue.d.ts +11 -0
  37. package/dist/queue.js +71 -0
  38. package/dist/queue.js.map +1 -0
  39. package/dist/register_server_manager.d.ts +92 -0
  40. package/dist/register_server_manager.js +574 -0
  41. package/dist/register_server_manager.js.map +1 -0
  42. package/dist/register_server_manager_hidden.d.ts +17 -0
  43. package/dist/register_server_manager_hidden.js +28 -0
  44. package/dist/register_server_manager_hidden.js.map +1 -0
  45. package/dist/register_server_manager_mdns_only.d.ts +19 -0
  46. package/dist/register_server_manager_mdns_only.js +58 -0
  47. package/dist/register_server_manager_mdns_only.js.map +1 -0
  48. package/dist/server_capabilities.d.ts +61 -0
  49. package/dist/server_capabilities.js +109 -0
  50. package/dist/server_capabilities.js.map +1 -0
  51. package/dist/server_end_point.d.ts +180 -0
  52. package/dist/server_end_point.js +825 -0
  53. package/dist/server_end_point.js.map +1 -0
  54. package/dist/server_engine.d.ts +311 -0
  55. package/dist/server_engine.js +1659 -0
  56. package/dist/server_engine.js.map +1 -0
  57. package/dist/server_publish_engine.d.ts +109 -0
  58. package/dist/server_publish_engine.js +531 -0
  59. package/dist/server_publish_engine.js.map +1 -0
  60. package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +16 -0
  61. package/dist/server_publish_engine_for_orphan_subscriptions.js +50 -0
  62. package/dist/server_publish_engine_for_orphan_subscriptions.js.map +1 -0
  63. package/dist/server_session.d.ts +176 -0
  64. package/dist/server_session.js +734 -0
  65. package/dist/server_session.js.map +1 -0
  66. package/dist/server_subscription.d.ts +393 -0
  67. package/dist/server_subscription.js +1313 -0
  68. package/dist/server_subscription.js.map +1 -0
  69. package/dist/sessions_compatible_for_transfer.d.ts +2 -0
  70. package/dist/sessions_compatible_for_transfer.js +36 -0
  71. package/dist/sessions_compatible_for_transfer.js.map +1 -0
  72. package/dist/validate_filter.d.ts +5 -0
  73. package/dist/validate_filter.js +64 -0
  74. package/dist/validate_filter.js.map +1 -0
  75. package/package.json +88 -0
  76. package/source/base_server.ts +617 -0
  77. package/source/factory.ts +25 -0
  78. package/source/history_server_capabilities.ts +75 -0
  79. package/source/i_channel_data.ts +17 -0
  80. package/source/i_register_server_manager.ts +24 -0
  81. package/source/i_server_side_publish_engine.ts +77 -0
  82. package/source/i_socket_data.ts +11 -0
  83. package/source/index.ts +14 -0
  84. package/source/monitored_item.ts +1303 -0
  85. package/source/node_sampler.ts +82 -0
  86. package/source/opcua_server.ts +3742 -0
  87. package/source/queue.ts +73 -0
  88. package/source/register_server_manager.ts +744 -0
  89. package/source/register_server_manager_hidden.ts +33 -0
  90. package/source/register_server_manager_mdns_only.ts +69 -0
  91. package/source/server_capabilities.ts +177 -0
  92. package/source/server_end_point.ts +1182 -0
  93. package/source/server_engine.ts +2167 -0
  94. package/source/server_publish_engine.ts +657 -0
  95. package/source/server_publish_engine_for_orphan_subscriptions.ts +52 -0
  96. package/source/server_session.ts +931 -0
  97. package/source/server_subscription.ts +1792 -0
  98. package/source/sessions_compatible_for_transfer.ts +33 -0
  99. package/source/validate_filter.ts +86 -0
  100. 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
+ }