node-opcua-server 2.166.0 → 2.168.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/dist/addressSpace_accessor.d.ts +6 -6
- package/dist/addressSpace_accessor.js +2 -2
- package/dist/addressSpace_accessor.js.map +1 -1
- package/dist/base_server.d.ts +14 -3
- package/dist/base_server.js +64 -44
- package/dist/base_server.js.map +1 -1
- package/dist/extract_password_from_blob.js +1 -3
- package/dist/extract_password_from_blob.js.map +1 -1
- package/dist/factory.d.ts +2 -3
- package/dist/factory.js.map +1 -1
- package/dist/filter/check_where_clause_on_address_space.d.ts +2 -2
- package/dist/filter/check_where_clause_on_address_space.js +1 -2
- package/dist/filter/check_where_clause_on_address_space.js.map +1 -1
- package/dist/filter/extract_event_fields.d.ts +3 -3
- package/dist/filter/extract_event_fields.js +1 -2
- package/dist/filter/extract_event_fields.js.map +1 -1
- package/dist/helper.d.ts +3 -3
- package/dist/helper.js +4 -8
- package/dist/helper.js.map +1 -1
- package/dist/i_address_space_accessor.d.ts +4 -4
- package/dist/i_channel_data.d.ts +1 -1
- package/dist/i_register_server_manager.d.ts +1 -1
- package/dist/i_server_side_publish_engine.d.ts +8 -6
- package/dist/i_server_side_publish_engine.js +7 -2
- package/dist/i_server_side_publish_engine.js.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/invalidate_server_certificate_cache.d.ts +16 -0
- package/dist/invalidate_server_certificate_cache.js +28 -0
- package/dist/invalidate_server_certificate_cache.js.map +1 -0
- package/dist/monitored_item.d.ts +10 -11
- package/dist/monitored_item.js +38 -39
- package/dist/monitored_item.js.map +1 -1
- package/dist/node_sampler.d.ts +1 -1
- package/dist/node_sampler.js +2 -4
- package/dist/node_sampler.js.map +1 -1
- package/dist/opcua_server.d.ts +57 -62
- package/dist/opcua_server.js +10 -10
- package/dist/opcua_server.js.map +1 -1
- package/dist/register_server_manager.d.ts +8 -8
- package/dist/register_server_manager.js +40 -40
- 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 +2 -4
- package/dist/register_server_manager_hidden.js.map +1 -1
- package/dist/register_server_manager_mdns_only.d.ts +1 -1
- package/dist/register_server_manager_mdns_only.js.map +1 -1
- package/dist/sampling_func.d.ts +2 -2
- package/dist/server_capabilities.d.ts +3 -3
- package/dist/server_capabilities.js.map +1 -1
- package/dist/server_end_point.d.ts +47 -4
- package/dist/server_end_point.js +133 -42
- package/dist/server_end_point.js.map +1 -1
- package/dist/server_engine.js +29 -25
- package/dist/server_engine.js.map +1 -1
- package/dist/server_publish_engine.d.ts +5 -5
- package/dist/server_publish_engine.js +29 -23
- 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 +9 -10
- package/dist/server_session.js +11 -12
- package/dist/server_session.js.map +1 -1
- package/dist/server_subscription.d.ts +13 -13
- package/dist/server_subscription.js +100 -79
- package/dist/server_subscription.js.map +1 -1
- package/dist/sessions_compatible_for_transfer.d.ts +1 -1
- package/dist/sessions_compatible_for_transfer.js +1 -1
- package/dist/sessions_compatible_for_transfer.js.map +1 -1
- package/dist/user_manager.d.ts +4 -4
- package/dist/user_manager.js +1 -1
- package/dist/user_manager.js.map +1 -1
- package/dist/user_manager_ua.d.ts +2 -2
- package/dist/user_manager_ua.js +2 -2
- package/dist/user_manager_ua.js.map +1 -1
- package/dist/validate_filter.d.ts +7 -4
- package/dist/validate_filter.js +5 -6
- package/dist/validate_filter.js.map +1 -1
- package/package.json +51 -50
- package/source/addressSpace_accessor.ts +24 -24
- package/source/base_server.ts +75 -63
- package/source/extract_password_from_blob.ts +3 -11
- package/source/factory.ts +2 -4
- package/source/filter/check_where_clause_on_address_space.ts +4 -7
- package/source/filter/extract_event_fields.ts +4 -5
- package/source/helper.ts +9 -13
- package/source/i_address_space_accessor.ts +13 -4
- package/source/i_channel_data.ts +1 -1
- package/source/i_register_server_manager.ts +2 -4
- package/source/i_server_side_publish_engine.ts +16 -9
- package/source/index.ts +10 -9
- package/source/invalidate_server_certificate_cache.ts +26 -0
- package/source/monitored_item.ts +44 -42
- package/source/node_sampler.ts +9 -11
- package/source/opcua_server.ts +86 -99
- package/source/register_server_manager.ts +75 -72
- package/source/register_server_manager_hidden.ts +3 -5
- package/source/register_server_manager_mdns_only.ts +1 -3
- package/source/sampling_func.ts +2 -2
- package/source/server_capabilities.ts +9 -6
- package/source/server_end_point.ts +143 -50
- package/source/server_engine.ts +22 -22
- package/source/server_publish_engine.ts +35 -30
- package/source/server_publish_engine_for_orphan_subscriptions.ts +3 -3
- package/source/server_session.ts +36 -33
- package/source/server_subscription.ts +182 -184
- package/source/sessions_compatible_for_transfer.ts +9 -9
- package/source/user_manager.ts +7 -7
- package/source/user_manager_ua.ts +3 -5
- package/source/validate_filter.ts +9 -11
package/dist/node_sampler.d.ts
CHANGED
package/dist/node_sampler.js
CHANGED
|
@@ -37,7 +37,7 @@ function appendToTimer(monitoredItem) {
|
|
|
37
37
|
const start = doDebug ? (0, node_opcua_utils_1.hrtime)() : undefined;
|
|
38
38
|
let counter = 0;
|
|
39
39
|
for (const m in _t.monitoredItems) {
|
|
40
|
-
if (Object.
|
|
40
|
+
if (Object.hasOwn(_t.monitoredItems, m)) {
|
|
41
41
|
sampleMonitoredItem(_t.monitoredItems[m]);
|
|
42
42
|
counter++;
|
|
43
43
|
}
|
|
@@ -45,9 +45,7 @@ function appendToTimer(monitoredItem) {
|
|
|
45
45
|
// c8 ignore next
|
|
46
46
|
if (doDebug) {
|
|
47
47
|
const elapsed = (0, node_opcua_utils_1.hrtime)(start);
|
|
48
|
-
debugLog(`Sampler ${samplingInterval} ms : Benchmark took ${((elapsed[0] * NS_PER_SEC + elapsed[1]) /
|
|
49
|
-
1000 /
|
|
50
|
-
1000.0).toFixed(3)} milliseconds for ${counter} elements`);
|
|
48
|
+
debugLog(`Sampler ${samplingInterval} ms : Benchmark took ${((elapsed[0] * NS_PER_SEC + elapsed[1]) / 1000 / 1000.0).toFixed(3)} milliseconds for ${counter} elements`);
|
|
51
49
|
}
|
|
52
50
|
}, samplingInterval);
|
|
53
51
|
timers[key] = _t;
|
package/dist/node_sampler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node_sampler.js","sourceRoot":"","sources":["../source/node_sampler.ts"],"names":[],"mappings":";;AAoCA,
|
|
1
|
+
{"version":3,"file":"node_sampler.js","sourceRoot":"","sources":["../source/node_sampler.ts"],"names":[],"mappings":"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"}
|
package/dist/opcua_server.d.ts
CHANGED
|
@@ -237,10 +237,63 @@ export interface OPCUAServerOptions extends OPCUABaseServerOptions, OPCUAServerE
|
|
|
237
237
|
skipOwnNamespace?: boolean;
|
|
238
238
|
transportSettings?: IServerTransportSettings;
|
|
239
239
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
240
|
+
export interface OPCUAServerEvents {
|
|
241
|
+
/** event raised when a new session is created */
|
|
242
|
+
create_session: [session: ServerSession];
|
|
243
|
+
/** event raised when a session is activated */
|
|
244
|
+
session_activated: [session: ServerSession, userIdentityToken: UserIdentityToken];
|
|
245
|
+
/** event raised when a session is closed */
|
|
246
|
+
session_closed: [session: ServerSession, deleteSubscriptions: boolean];
|
|
247
|
+
/** event raised after the server address space has been initialized */
|
|
248
|
+
post_initialize: [];
|
|
249
|
+
/**
|
|
250
|
+
* emitted when the server is trying to register with the LDS
|
|
251
|
+
* but the connection has failed (backoff signal)
|
|
252
|
+
*/
|
|
253
|
+
serverRegistrationPending: [];
|
|
254
|
+
/** event raised when server has been successfully registered on the LDS */
|
|
255
|
+
serverRegistered: [];
|
|
256
|
+
/** event raised when server registration has been successfully renewed on the LDS */
|
|
257
|
+
serverRegistrationRenewed: [];
|
|
258
|
+
/** event raised when server has been successfully unregistered from the LDS */
|
|
259
|
+
serverUnregistered: [];
|
|
260
|
+
/** event raised after the server has raised an OPCUA event toward a client */
|
|
261
|
+
event: [eventData: unknown];
|
|
262
|
+
/**
|
|
263
|
+
* event raised when the server receives a request from a connected client.
|
|
264
|
+
* Useful for trace/diagnostics.
|
|
265
|
+
*/
|
|
266
|
+
request: [request: Request, channel: ServerSecureChannelLayer];
|
|
267
|
+
/**
|
|
268
|
+
* event raised when the server sends a response to a connected client.
|
|
269
|
+
* Useful for trace/diagnostics.
|
|
270
|
+
*/
|
|
271
|
+
response: [response: Response, channel: ServerSecureChannelLayer];
|
|
272
|
+
/**
|
|
273
|
+
* event raised when a new secure channel transport is initialized (HEL/ACK complete).
|
|
274
|
+
* Note: securityPolicy and securityMode are NOT yet established at this point.
|
|
275
|
+
* Use "channelSecured" for post-handshake notifications.
|
|
276
|
+
*/
|
|
277
|
+
newChannel: [channel: ServerSecureChannelLayer, endpoint: OPCUAServerEndPoint];
|
|
278
|
+
/**
|
|
279
|
+
* event raised when a secure channel has completed the OpenSecureChannel handshake.
|
|
280
|
+
* At this point securityPolicy, securityMode, and clientCertificate are available.
|
|
281
|
+
*/
|
|
282
|
+
channelSecured: [channel: ServerSecureChannelLayer, endpoint: OPCUAServerEndPoint];
|
|
283
|
+
/** event raised when a secure channel is closed */
|
|
284
|
+
closeChannel: [channel: ServerSecureChannelLayer, endpoint: OPCUAServerEndPoint];
|
|
285
|
+
/**
|
|
286
|
+
* event raised when the server refused a TCP connection from a client
|
|
287
|
+
* (for instance because too many connections)
|
|
288
|
+
*/
|
|
289
|
+
connectionRefused: [socketData: ISocketData, endpoint: OPCUAServerEndPoint];
|
|
290
|
+
/**
|
|
291
|
+
* event raised when an OpenSecureChannel has failed,
|
|
292
|
+
* e.g. invalid certificate or malformed message
|
|
293
|
+
*/
|
|
294
|
+
openSecureChannelFailure: [socketData: ISocketData, channelData: IChannelData, endpoint: OPCUAServerEndPoint];
|
|
295
|
+
}
|
|
296
|
+
export declare class OPCUAServer extends OPCUABaseServer<OPCUAServerEvents> {
|
|
244
297
|
engine: ServerEngine;
|
|
245
298
|
registerServerMethod: RegisterServerMethod;
|
|
246
299
|
discoveryServerEndpointUrl: string;
|
|
@@ -601,64 +654,6 @@ export declare class OPCUAServer extends OPCUABaseServer {
|
|
|
601
654
|
private createEndpoint;
|
|
602
655
|
private createEndpointDescriptions;
|
|
603
656
|
initializeCM(): Promise<void>;
|
|
604
|
-
on(event: "create_session", eventHandler: (session: ServerSession) => void): this;
|
|
605
|
-
on(event: "session_activated", eventHandler: (session: ServerSession) => void): this;
|
|
606
|
-
on(event: "session_closed", eventHandler: (session: ServerSession, reason: string) => void): this;
|
|
607
|
-
on(event: "post_initialize", eventHandler: () => void): this;
|
|
608
|
-
/**
|
|
609
|
-
* emitted when the server is trying to registered the LDS
|
|
610
|
-
* but when the connection to the lds has failed
|
|
611
|
-
* serverRegistrationPending is sent when the backoff signal of the
|
|
612
|
-
* connection process is raised
|
|
613
|
-
* @event serverRegistrationPending
|
|
614
|
-
*/
|
|
615
|
-
on(event: "serverRegistrationPending", eventHandler: () => void): this;
|
|
616
|
-
/**
|
|
617
|
-
* event raised when server has been successfully registered on the local discovery server
|
|
618
|
-
* @event serverRegistered
|
|
619
|
-
*/
|
|
620
|
-
on(event: "serverRegistered", eventHandler: () => void): this;
|
|
621
|
-
/**
|
|
622
|
-
* event raised when server registration has been successfully renewed on the local discovery server
|
|
623
|
-
* @event serverRegistered
|
|
624
|
-
*/
|
|
625
|
-
on(event: "serverRegistrationRenewed", eventHandler: () => void): this;
|
|
626
|
-
/**
|
|
627
|
-
* event raised when server has been successfully unregistered from the local discovery server
|
|
628
|
-
* @event serverUnregistered
|
|
629
|
-
*/
|
|
630
|
-
on(event: "serverUnregistered", eventHandler: () => void): this;
|
|
631
|
-
/**
|
|
632
|
-
* event raised after the server has raised an OPCUA event toward a client
|
|
633
|
-
*/
|
|
634
|
-
on(event: "event", eventHandler: (eventData: unknown) => void): this;
|
|
635
|
-
/**
|
|
636
|
-
* event raised when the server received a request from one of its connected client.
|
|
637
|
-
* useful for trace purpose.
|
|
638
|
-
*/
|
|
639
|
-
on(event: "request", eventHandler: (request: Request, channel: ServerSecureChannelLayer) => void): this;
|
|
640
|
-
/**
|
|
641
|
-
* event raised when the server send an response to a request to one of its connected client.
|
|
642
|
-
* useful for trace purpose.
|
|
643
|
-
*/
|
|
644
|
-
on(event: "response", eventHandler: (request: Response, channel: ServerSecureChannelLayer) => void): this;
|
|
645
|
-
/**
|
|
646
|
-
* event raised when a new secure channel is opened
|
|
647
|
-
*/
|
|
648
|
-
on(event: "newChannel", eventHandler: (channel: ServerSecureChannelLayer, endpoint: OPCUAServerEndPoint) => void): this;
|
|
649
|
-
/**
|
|
650
|
-
* event raised when a new secure channel is closed
|
|
651
|
-
*/
|
|
652
|
-
on(event: "closeChannel", eventHandler: (channel: ServerSecureChannelLayer, endpoint: OPCUAServerEndPoint) => void): this;
|
|
653
|
-
/**
|
|
654
|
-
* event raised when the server refused a tcp connection from a client. ( for instance because too any connections)
|
|
655
|
-
*/
|
|
656
|
-
on(event: "connectionRefused", eventHandler: (socketData: ISocketData, endpoint: OPCUAServerEndPoint) => void): this;
|
|
657
|
-
/**
|
|
658
|
-
* event raised when a OpenSecureChannel has failed, it could be a invalid certificate or malformed message
|
|
659
|
-
*/
|
|
660
|
-
on(event: "openSecureChannelFailure", eventHandler: (socketData: ISocketData, channelData: IChannelData, endpoint: OPCUAServerEndPoint) => void): this;
|
|
661
|
-
on(event: string, eventHandler: (...args: unknown[]) => void): this;
|
|
662
657
|
}
|
|
663
658
|
export interface RaiseEventAuditEventData extends RaiseEventData {
|
|
664
659
|
actionTimeStamp: PseudoVariantDateTime;
|
package/dist/opcua_server.js
CHANGED
|
@@ -41,12 +41,12 @@ const node_opcua_utils_1 = require("node-opcua-utils");
|
|
|
41
41
|
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
42
42
|
const thenify_ex_1 = require("thenify-ex");
|
|
43
43
|
const base_server_1 = require("./base_server");
|
|
44
|
+
const extract_password_from_blob_1 = require("./extract_password_from_blob");
|
|
44
45
|
const factory_1 = require("./factory");
|
|
45
46
|
const monitored_item_1 = require("./monitored_item");
|
|
46
47
|
const register_server_manager_1 = require("./register_server_manager");
|
|
47
48
|
const register_server_manager_hidden_1 = require("./register_server_manager_hidden");
|
|
48
49
|
const register_server_manager_mdns_only_1 = require("./register_server_manager_mdns_only");
|
|
49
|
-
const extract_password_from_blob_1 = require("./extract_password_from_blob");
|
|
50
50
|
const server_end_point_1 = require("./server_end_point");
|
|
51
51
|
const server_engine_1 = require("./server_engine");
|
|
52
52
|
const user_manager_1 = require("./user_manager");
|
|
@@ -484,9 +484,6 @@ var RegisterServerMethod;
|
|
|
484
484
|
RegisterServerMethod[RegisterServerMethod["LDS"] = 3] = "LDS"; // the server registers itself to the LDS or LDS-ME (Local Discovery Server)
|
|
485
485
|
})(RegisterServerMethod || (exports.RegisterServerMethod = RegisterServerMethod = {}));
|
|
486
486
|
const g_requestExactEndpointUrl = !!process.env.NODEOPCUA_SERVER_REQUEST_EXACT_ENDPOINT_URL;
|
|
487
|
-
/**
|
|
488
|
-
*
|
|
489
|
-
*/
|
|
490
487
|
class OPCUAServer extends base_server_1.OPCUABaseServer {
|
|
491
488
|
engine;
|
|
492
489
|
registerServerMethod;
|
|
@@ -1397,7 +1394,7 @@ class OPCUAServer extends base_server_1.OPCUABaseServer {
|
|
|
1397
1394
|
// If the securityPolicyUri is None and none of the UserTokenPolicies requires
|
|
1398
1395
|
// encryption, the Server shall not send an ApplicationInstanceCertificate and the Client
|
|
1399
1396
|
// shall ignore the ApplicationInstanceCertificate.
|
|
1400
|
-
serverCertificate: hasEncryption ? serverCertificateChain : undefined,
|
|
1397
|
+
serverCertificate: hasEncryption && serverCertificateChain.length > 0 ? (0, web_1.combine_der)(serverCertificateChain) : undefined,
|
|
1401
1398
|
// The endpoints provided by the server.
|
|
1402
1399
|
// The Server shall return a set of EndpointDescriptions available for the serverUri
|
|
1403
1400
|
// specified in the request.[...]
|
|
@@ -2587,6 +2584,13 @@ class OPCUAServer extends base_server_1.OPCUABaseServer {
|
|
|
2587
2584
|
serverInfo: this.serverInfo,
|
|
2588
2585
|
transportSettings: serverOptions.transportSettings
|
|
2589
2586
|
});
|
|
2587
|
+
// SecretHolder reads certificateFile/privateKeyFile from `this`
|
|
2588
|
+
// on each access, so it follows Object.defineProperty redirects
|
|
2589
|
+
// (e.g. from push cert management) automatically.
|
|
2590
|
+
// Note: creates a cycle (server → endpoint → SecretHolder → server)
|
|
2591
|
+
// which is harmless — V8 mark-and-sweep handles it, and
|
|
2592
|
+
// endpoint.dispose() breaks it by replacing #certProvider.
|
|
2593
|
+
endPoint.setCertificateProvider(new node_opcua_common_1.SecretHolder(this));
|
|
2590
2594
|
return endPoint;
|
|
2591
2595
|
}
|
|
2592
2596
|
createEndpointDescriptions(serverOption, endpointOptions) {
|
|
@@ -2619,7 +2623,7 @@ class OPCUAServer extends base_server_1.OPCUABaseServer {
|
|
|
2619
2623
|
disableDiscovery: !!endpointOptions.disableDiscovery,
|
|
2620
2624
|
// xx hostname,
|
|
2621
2625
|
resourcePath: serverOption.resourcePath || "",
|
|
2622
|
-
advertisedEndpoints: endpointOptions.advertisedEndpoints
|
|
2626
|
+
advertisedEndpoints: endpointOptions.advertisedEndpoints
|
|
2623
2627
|
// TODO userTokenTypes: endpointOptions.userTokenTypes || undefined,
|
|
2624
2628
|
// TODO allowUnsecurePassword: endpointOptions.allowUnsecurePassword || false
|
|
2625
2629
|
});
|
|
@@ -2629,10 +2633,6 @@ class OPCUAServer extends base_server_1.OPCUABaseServer {
|
|
|
2629
2633
|
await super.initializeCM();
|
|
2630
2634
|
await this.userCertificateManager.initialize();
|
|
2631
2635
|
}
|
|
2632
|
-
// biome-ignore lint/suspicious/noExplicitAny: must match EventEmitter.on() signature
|
|
2633
|
-
on(event, eventHandler) {
|
|
2634
|
-
return super.on(event, eventHandler);
|
|
2635
|
-
}
|
|
2636
2636
|
}
|
|
2637
2637
|
exports.OPCUAServer = OPCUAServer;
|
|
2638
2638
|
const userIdentityTokenPasswordRemoved = (userIdentityToken) => {
|