node-opcua-server 2.75.0 → 2.76.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 (61) hide show
  1. package/dist/base_server.d.ts +110 -110
  2. package/dist/base_server.js +473 -473
  3. package/dist/factory.d.ts +12 -12
  4. package/dist/factory.js +23 -23
  5. package/dist/filter/check_where_clause_on_address_space.d.ts +3 -3
  6. package/dist/filter/check_where_clause_on_address_space.js +22 -22
  7. package/dist/filter/extract_event_fields.d.ts +10 -10
  8. package/dist/filter/extract_event_fields.js +17 -17
  9. package/dist/helper.d.ts +10 -10
  10. package/dist/helper.js +75 -75
  11. package/dist/history_server_capabilities.d.ts +35 -35
  12. package/dist/history_server_capabilities.js +43 -43
  13. package/dist/i_channel_data.d.ts +13 -13
  14. package/dist/i_channel_data.js +2 -2
  15. package/dist/i_register_server_manager.d.ts +16 -16
  16. package/dist/i_register_server_manager.js +2 -2
  17. package/dist/i_server_side_publish_engine.d.ts +36 -36
  18. package/dist/i_server_side_publish_engine.js +49 -49
  19. package/dist/i_socket_data.d.ts +11 -11
  20. package/dist/i_socket_data.js +2 -2
  21. package/dist/index.d.ts +16 -16
  22. package/dist/index.js +32 -32
  23. package/dist/monitored_item.d.ts +177 -177
  24. package/dist/monitored_item.js +1001 -1001
  25. package/dist/node_sampler.d.ts +3 -3
  26. package/dist/node_sampler.js +75 -75
  27. package/dist/opcua_server.d.ts +747 -650
  28. package/dist/opcua_server.js +2431 -2396
  29. package/dist/opcua_server.js.map +1 -1
  30. package/dist/queue.d.ts +11 -11
  31. package/dist/queue.js +71 -71
  32. package/dist/register_server_manager.d.ts +96 -96
  33. package/dist/register_server_manager.js +584 -584
  34. package/dist/register_server_manager_hidden.d.ts +17 -17
  35. package/dist/register_server_manager_hidden.js +27 -27
  36. package/dist/register_server_manager_mdns_only.d.ts +22 -22
  37. package/dist/register_server_manager_mdns_only.js +55 -55
  38. package/dist/server_capabilities.d.ts +148 -148
  39. package/dist/server_capabilities.js +92 -92
  40. package/dist/server_end_point.d.ts +183 -183
  41. package/dist/server_end_point.js +817 -817
  42. package/dist/server_engine.d.ts +317 -317
  43. package/dist/server_engine.js +1716 -1716
  44. package/dist/server_publish_engine.d.ts +113 -113
  45. package/dist/server_publish_engine.js +541 -541
  46. package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +16 -16
  47. package/dist/server_publish_engine_for_orphan_subscriptions.js +51 -51
  48. package/dist/server_session.d.ts +182 -182
  49. package/dist/server_session.js +739 -739
  50. package/dist/server_subscription.d.ts +421 -421
  51. package/dist/server_subscription.js +1346 -1346
  52. package/dist/sessions_compatible_for_transfer.d.ts +2 -2
  53. package/dist/sessions_compatible_for_transfer.js +39 -39
  54. package/dist/user_manager.d.ts +32 -32
  55. package/dist/user_manager.js +74 -74
  56. package/dist/user_manager_ua.d.ts +3 -3
  57. package/dist/user_manager_ua.js +39 -39
  58. package/dist/validate_filter.d.ts +5 -5
  59. package/dist/validate_filter.js +60 -60
  60. package/package.json +47 -49
  61. package/source/opcua_server.ts +154 -14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-server",
3
- "version": "2.75.0",
3
+ "version": "2.76.0",
4
4
  "description": "pure nodejs OPCUA SDK - module -server",
5
5
  "scripts": {
6
6
  "build": "tsc -b",
@@ -13,63 +13,61 @@
13
13
  "types": "./dist/index.d.ts",
14
14
  "dependencies": {
15
15
  "@ster5/global-mutex": "^1.2.0",
16
- "@types/underscore": "^1.11.4",
17
16
  "async": "^3.2.4",
17
+ "chalk": "4.1.2",
18
18
  "dequeue": "^1.0.5",
19
19
  "lodash": "4.17.21",
20
- "node-opcua-address-space": "2.75.0",
21
- "node-opcua-address-space-base": "2.75.0",
22
- "node-opcua-assert": "2.74.0",
23
- "node-opcua-basic-types": "2.74.0",
24
- "node-opcua-binary-stream": "2.74.0",
25
- "node-opcua-certificate-manager": "2.74.0",
26
- "node-opcua-client": "2.75.0",
27
- "node-opcua-client-dynamic-extension-object": "2.75.0",
28
- "node-opcua-common": "2.75.0",
20
+ "node-opcua-address-space": "2.76.0",
21
+ "node-opcua-address-space-base": "2.76.0",
22
+ "node-opcua-assert": "2.76.0",
23
+ "node-opcua-basic-types": "2.76.0",
24
+ "node-opcua-binary-stream": "2.76.0",
25
+ "node-opcua-certificate-manager": "2.76.0",
26
+ "node-opcua-client": "2.76.0",
27
+ "node-opcua-client-dynamic-extension-object": "2.76.0",
28
+ "node-opcua-common": "2.76.0",
29
29
  "node-opcua-constants": "2.74.0",
30
30
  "node-opcua-crypto": "^1.11.0",
31
- "node-opcua-data-access": "2.75.0",
32
- "node-opcua-data-model": "2.75.0",
33
- "node-opcua-data-value": "2.75.0",
34
- "node-opcua-date-time": "2.74.0",
35
- "node-opcua-debug": "2.74.0",
36
- "node-opcua-enum": "2.74.0",
37
- "node-opcua-extension-object": "2.75.0",
38
- "node-opcua-factory": "2.75.0",
39
- "node-opcua-hostname": "2.74.0",
40
- "node-opcua-nodeid": "2.74.0",
41
- "node-opcua-nodeset-ua": "2.75.0",
31
+ "node-opcua-data-access": "2.76.0",
32
+ "node-opcua-data-model": "2.76.0",
33
+ "node-opcua-data-value": "2.76.0",
34
+ "node-opcua-date-time": "2.76.0",
35
+ "node-opcua-debug": "2.76.0",
36
+ "node-opcua-extension-object": "2.76.0",
37
+ "node-opcua-factory": "2.76.0",
38
+ "node-opcua-hostname": "2.76.0",
39
+ "node-opcua-nodeid": "2.76.0",
42
40
  "node-opcua-nodesets": "2.74.0",
43
- "node-opcua-numeric-range": "2.75.0",
44
- "node-opcua-object-registry": "2.74.0",
45
- "node-opcua-pki": "^2.17.0",
46
- "node-opcua-secure-channel": "2.75.0",
47
- "node-opcua-service-browse": "2.75.0",
48
- "node-opcua-service-call": "2.75.0",
49
- "node-opcua-service-discovery": "2.75.0",
50
- "node-opcua-service-endpoints": "2.75.0",
51
- "node-opcua-service-filter": "2.75.0",
52
- "node-opcua-service-history": "2.75.0",
53
- "node-opcua-service-node-management": "2.75.0",
54
- "node-opcua-service-query": "2.75.0",
55
- "node-opcua-service-read": "2.75.0",
56
- "node-opcua-service-register-node": "2.75.0",
57
- "node-opcua-service-secure-channel": "2.75.0",
58
- "node-opcua-service-session": "2.75.0",
59
- "node-opcua-service-subscription": "2.75.0",
60
- "node-opcua-service-translate-browse-path": "2.75.0",
61
- "node-opcua-service-write": "2.75.0",
62
- "node-opcua-status-code": "2.74.0",
63
- "node-opcua-transport": "2.75.0",
64
- "node-opcua-types": "2.75.0",
65
- "node-opcua-utils": "2.74.0",
66
- "node-opcua-variant": "2.75.0"
41
+ "node-opcua-numeric-range": "2.76.0",
42
+ "node-opcua-object-registry": "2.76.0",
43
+ "node-opcua-secure-channel": "2.76.0",
44
+ "node-opcua-service-browse": "2.76.0",
45
+ "node-opcua-service-call": "2.76.0",
46
+ "node-opcua-service-discovery": "2.76.0",
47
+ "node-opcua-service-endpoints": "2.76.0",
48
+ "node-opcua-service-filter": "2.76.0",
49
+ "node-opcua-service-history": "2.76.0",
50
+ "node-opcua-service-node-management": "2.76.0",
51
+ "node-opcua-service-query": "2.76.0",
52
+ "node-opcua-service-read": "2.76.0",
53
+ "node-opcua-service-register-node": "2.76.0",
54
+ "node-opcua-service-secure-channel": "2.76.0",
55
+ "node-opcua-service-session": "2.76.0",
56
+ "node-opcua-service-subscription": "2.76.0",
57
+ "node-opcua-service-translate-browse-path": "2.76.0",
58
+ "node-opcua-service-write": "2.76.0",
59
+ "node-opcua-status-code": "2.76.0",
60
+ "node-opcua-types": "2.76.0",
61
+ "node-opcua-utils": "2.76.0",
62
+ "node-opcua-variant": "2.76.0",
63
+ "thenify": "^3.3.1"
67
64
  },
68
65
  "devDependencies": {
69
- "node-opcua-leak-detector": "2.74.0",
66
+ "node-opcua-leak-detector": "2.76.0",
70
67
  "node-opcua-test-helpers": "2.74.0",
71
68
  "should": "^13.2.3",
72
- "sinon": "^14.0.0"
69
+ "sinon": "^14.0.0",
70
+ "underscore": "^1.13.4"
73
71
  },
74
72
  "author": "Etienne Rossignon",
75
73
  "license": "MIT",
@@ -86,5 +84,5 @@
86
84
  "internet of things"
87
85
  ],
88
86
  "homepage": "http://node-opcua.github.io/",
89
- "gitHead": "5ccb835ca480c2a8a591ae61b5949a9d8bad4017"
87
+ "gitHead": "75d9b8cf894c8fbadf77d2c4a48a730d055465e7"
90
88
  }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable complexity */
1
2
  /**
2
3
  * @module node-opcua-server
3
4
  */
@@ -38,7 +39,8 @@ import {
38
39
  ISessionContext,
39
40
  UAView,
40
41
  EventTypeLike,
41
- UAObjectType
42
+ UAObjectType,
43
+ PseudoVariantStringPredefined
42
44
  } from "node-opcua-address-space";
43
45
  import { getDefaultCertificateManager, OPCUACertificateManager } from "node-opcua-certificate-manager";
44
46
  import { ServerState } from "node-opcua-common";
@@ -146,13 +148,15 @@ import {
146
148
  MonitoredItemCreateResult,
147
149
  IssuedIdentityToken,
148
150
  BrowseResultOptions,
149
- ServiceFault
151
+ ServiceFault,
152
+ ServerDiagnosticsSummaryDataType
150
153
  } from "node-opcua-types";
151
154
  import { DataType } from "node-opcua-variant";
152
155
  import { VariantArrayType } from "node-opcua-variant";
153
156
  import { matchUri } from "node-opcua-utils";
154
157
 
155
158
  import { UAString } from "node-opcua-basic-types";
159
+ import { ObjectIds, ObjectTypeIds } from "node-opcua-constants";
156
160
  import { OPCUABaseServer, OPCUABaseServerOptions } from "./base_server";
157
161
  import { Factory } from "./factory";
158
162
  import { IRegisterServerManager } from "./i_register_server_manager";
@@ -262,11 +266,8 @@ async function _attempt_to_close_some_old_unactivated_session(server: OPCUAServe
262
266
 
263
267
  function getRequiredEndpointInfo(endpoint: EndpointDescription) {
264
268
  assert(endpoint instanceof EndpointDescription);
265
- // It is recommended that Servers only include the server.applicationUri, endpointUrl, securityMode,
266
- // securityPolicyUri, userIdentityTokens, transportProfileUri and securityLevel with all
267
- // other parameters set to null. Only the recommended parameters shall be verified by
268
- // the client.
269
-
269
+ // https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.2/
270
+ // https://reference.opcfoundation.org/v105/Core/docs/Part4/5.6.2/
270
271
  const e = new EndpointDescription({
271
272
  endpointUrl: endpoint.endpointUrl,
272
273
  securityLevel: endpoint.securityLevel,
@@ -275,14 +276,13 @@ function getRequiredEndpointInfo(endpoint: EndpointDescription) {
275
276
  server: {
276
277
  applicationUri: endpoint.server.applicationUri,
277
278
  applicationType: endpoint.server.applicationType,
278
- applicationName: endpoint.server.applicationName
279
- // ... to be continued after verifying what fields are actually needed
279
+ applicationName: endpoint.server.applicationName,
280
+ productUri: endpoint.server.productUri
280
281
  },
281
282
  transportProfileUri: endpoint.transportProfileUri,
282
283
  userIdentityTokens: endpoint.userIdentityTokens
283
284
  });
284
285
  // reduce even further by explicitly setting unwanted members to null
285
- e.server.productUri = null;
286
286
  e.server.applicationName = null as any;
287
287
  // xx e.server.applicationType = null as any;
288
288
  e.server.gatewayServerUri = null;
@@ -299,10 +299,8 @@ function getRequiredEndpointInfo(endpoint: EndpointDescription) {
299
299
  function _serverEndpointsForCreateSessionResponse(server: OPCUAServer, endpointUrl: string | null, serverUri: string | null) {
300
300
  serverUri = null; // unused then
301
301
 
302
- // The Server shall return a set of EndpointDescriptions available for the serverUri specified in the request.
303
- // It is recommended that Servers only include the endpointUrl, securityMode,
304
- // securityPolicyUri, userIdentityTokens, transportProfileUri and securityLevel with all other parameters
305
- // set to null. Only the recommended parameters shall be verified by the client.
302
+ // https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.2/
303
+ // https://reference.opcfoundation.org/v105/Core/docs/Part4/5.6.2/
306
304
  return server
307
305
  ._get_endpoints(endpointUrl)
308
306
  .filter((e) => !(e as any).restricted) // remove restricted endpoints
@@ -1356,6 +1354,19 @@ export class OPCUAServer extends OPCUABaseServer {
1356
1354
  }
1357
1355
  }
1358
1356
 
1357
+ public raiseEvent(eventType: "AuditSessionEventType", options: RaiseEventAuditSessionEventData): void;
1358
+ public raiseEvent(eventType: "AuditCreateSessionEventType", options: RaiseEventAuditCreateSessionEventData): void;
1359
+ public raiseEvent(eventType: "AuditActivateSessionEventType", options: RaiseEventAuditActivateSessionEventData): void;
1360
+ public raiseEvent(eventType: "AuditCreateSessionEventType", options: RaiseEventData): void;
1361
+ public raiseEvent(eventType: "AuditConditionCommentEventType", options: RaiseEventAuditConditionCommentEventData): void;
1362
+ public raiseEvent(eventType: "AuditUrlMismatchEventType", options: RaiseEventAuditUrlMismatchEventTypeData): void;
1363
+ public raiseEvent(eventType: "TransitionEventType", options: RaiseEventTransitionEventData): void;
1364
+ public raiseEvent(eventType: "AuditCertificateInvalidEventType", options: RaiseAuditCertificateInvalidEventData): void;
1365
+ public raiseEvent(eventType: "AuditCertificateExpiredEventType", options: RaiseAuditCertificateExpiredEventData): void;
1366
+ public raiseEvent(eventType: "AuditCertificateUntrustedEventType", options: RaiseAuditCertificateUntrustedEventData): void;
1367
+ public raiseEvent(eventType: "AuditCertificateRevokedEventType", options: RaiseAuditCertificateRevokedEventData): void;
1368
+ public raiseEvent(eventType: "AuditCertificateMismatchEventType", options: RaiseAuditCertificateMismatchEventData): void;
1369
+
1359
1370
  public raiseEvent(eventType: EventTypeLike | UAObjectType, options: RaiseEventData): void {
1360
1371
  /* istanbul ignore next */
1361
1372
  if (!this.engine.addressSpace) {
@@ -1496,6 +1507,8 @@ export class OPCUAServer extends OPCUABaseServer {
1496
1507
  }
1497
1508
 
1498
1509
  if (!userTokenSignature || !userTokenSignature.signature) {
1510
+ this.raiseEvent("AuditCreateSessionEventType", {});
1511
+
1499
1512
  return callback(null, StatusCodes.BadUserSignatureInvalid);
1500
1513
  }
1501
1514
 
@@ -1525,6 +1538,45 @@ export class OPCUAServer extends OPCUABaseServer {
1525
1538
  if (err) {
1526
1539
  return callback(err);
1527
1540
  }
1541
+ if (this.isAuditing) {
1542
+ switch (certificateStatus) {
1543
+ case StatusCodes.Good:
1544
+ break;
1545
+ case StatusCodes.BadCertificateUntrusted:
1546
+ this.raiseEvent("AuditCertificateUntrustedEventType", {
1547
+ certificate: { dataType: DataType.ByteString, value: certificate },
1548
+ sourceName: { dataType: DataType.String, value: "Security/Certificate" }
1549
+ });
1550
+ break;
1551
+ case StatusCodes.BadCertificateTimeInvalid:
1552
+ case StatusCodes.BadCertificateIssuerTimeInvalid:
1553
+ this.raiseEvent("AuditCertificateExpiredEventType", {
1554
+ certificate: { dataType: DataType.ByteString, value: certificate },
1555
+ sourceName: { dataType: DataType.String, value: "Security/Certificate" },
1556
+ comment: { dataType: DataType.String, value: certificateStatus.toString() }
1557
+ });
1558
+ break;
1559
+ case StatusCodes.BadCertificateRevoked:
1560
+ case StatusCodes.BadCertificateRevocationUnknown:
1561
+ case StatusCodes.BadCertificateIssuerRevocationUnknown:
1562
+ this.raiseEvent("AuditCertificateRevokedEventType", {
1563
+ certificate: { dataType: DataType.ByteString, value: certificate },
1564
+ sourceName: { dataType: DataType.String, value: "Security/Certificate" },
1565
+ comment: { dataType: DataType.String, value: certificateStatus.toString() }
1566
+ });
1567
+ break;
1568
+ case StatusCodes.BadCertificateIssuerUseNotAllowed:
1569
+ case StatusCodes.BadCertificateUseNotAllowed:
1570
+ case StatusCodes.BadSecurityChecksFailed:
1571
+ this.raiseEvent("AuditCertificateMismatchEventType", {
1572
+ certificate: { dataType: DataType.ByteString, value: certificate },
1573
+ sourceName: { dataType: DataType.String, value: "Security/Certificate" },
1574
+ comment: { dataType: DataType.String, value: certificateStatus.toString() }
1575
+ });
1576
+ break;
1577
+
1578
+ }
1579
+ }
1528
1580
  if (
1529
1581
  StatusCodes.BadCertificateUntrusted === certificateStatus ||
1530
1582
  StatusCodes.BadCertificateTimeInvalid === certificateStatus ||
@@ -1538,6 +1590,7 @@ export class OPCUAServer extends OPCUABaseServer {
1538
1590
  StatusCodes.Good !== certificateStatus
1539
1591
  ) {
1540
1592
  debugLog("isValidX509IdentityToken => certificateStatus = ", certificateStatus?.toString());
1593
+
1541
1594
  return callback(null, StatusCodes.BadIdentityTokenRejected);
1542
1595
  }
1543
1596
  if (StatusCodes.Good !== certificateStatus) {
@@ -3642,6 +3695,87 @@ export interface RaiseEventTransitionEventData extends RaiseEventData {}
3642
3695
  export interface RaiseEventAuditUrlMismatchEventTypeData extends RaiseEventData {
3643
3696
  endpointUrl: PseudoVariantString;
3644
3697
  }
3698
+
3699
+ /**
3700
+ * The SourceName for Events of this type shall be “Security/Certificate”.
3701
+ */
3702
+ export interface RaiseAuditCertificateEventData extends RaiseEventData {
3703
+ certificate: PseudoVariantByteString;
3704
+ sourceName: PseudoVariantStringPredefined<"Security/Certificate">;
3705
+ }
3706
+
3707
+ /**
3708
+ * This EventType inherits all Properties of the AuditCertificateEventType.
3709
+ * Either the InvalidHostname or InvalidUri shall be provided.
3710
+ */
3711
+ export interface RaiseAuditCertificateDataMismatchEventData extends RaiseAuditCertificateEventData {
3712
+ /**
3713
+ * InvalidHostname is the string that represents the host name passed in as part of the URL
3714
+ * that is found to be invalid. If the host name was not invalid it can be null.
3715
+ */
3716
+ invalidHostname: PseudoVariantString;
3717
+ /*
3718
+ * InvalidUri is the URI that was passed in and found to not match what is contained in
3719
+ * the certificate. If the URI was not invalid it can be null.
3720
+ */
3721
+ invalidUri: PseudoVariantString;
3722
+ }
3723
+ export interface RaiseAuditCertificateUntrustedEventData extends RaiseAuditCertificateEventData {}
3724
+ /**
3725
+ * This EventType inherits all Properties of the AuditCertificateEventType.
3726
+ *
3727
+ * The SourceName for Events of this type shall be “Security/Certificate”.
3728
+ *
3729
+ * The Message Variable shall include a description of why the certificate was expired
3730
+ * (i.e. time before start or time after end).
3731
+ *
3732
+ * There are no additional Properties defined for this EventType.
3733
+ *
3734
+ */
3735
+ export interface RaiseAuditCertificateExpiredEventData extends RaiseAuditCertificateEventData {}
3736
+ /**
3737
+ * This EventType inherits all Properties of the AuditCertificateEventType.
3738
+ *
3739
+ * The SourceName for Events of this type shall be “Security/Certificate”.
3740
+ *
3741
+ * The Message shall include a description of why the certificate is invalid.
3742
+ *
3743
+ * There are no additional Properties defined for this EventType.
3744
+ */
3745
+ export interface RaiseAuditCertificateInvalidEventData extends RaiseAuditCertificateEventData {}
3746
+ /**
3747
+ * This EventType inherits all Properties of the AuditCertificateEventType.
3748
+ *
3749
+ * The SourceName for Events of this type shall be “Security/Certificate”.
3750
+ *
3751
+ * The Message Variable shall include a description of why the certificate is not trusted.
3752
+ * If a trust chain is involved then the certificate that failed in the trust chain should be described.
3753
+ * There are no additional Properties defined for this EventType.
3754
+ */
3755
+ export interface RaiseAuditCertificateUntrustedEventData extends RaiseAuditCertificateEventData {}
3756
+ /**
3757
+ * This EventType inherits all Properties of the AuditCertificateEventType.
3758
+ *
3759
+ * The SourceName for Events of this type shall be “Security/Certificate”.
3760
+ *
3761
+ * The Message Variable shall include a description of why the certificate is revoked
3762
+ * (was the revocation list unavailable or was the certificate on the list).
3763
+ *
3764
+ * There are no additional Properties defined for this EventType.
3765
+ */
3766
+ export interface RaiseAuditCertificateRevokedEventData extends RaiseAuditCertificateEventData {
3767
+ sourceName: PseudoVariantStringPredefined<"Security/Certificate">;
3768
+ }
3769
+ /**
3770
+ * This EventType inherits all Properties of the AuditCertificateEventType.
3771
+ *
3772
+ * The SourceName for Events of this type shall be “Security/Certificate”.
3773
+ *
3774
+ * The Message Variable shall include a description of misuse of the certificate.
3775
+ *
3776
+ * There are no additional Properties defined for this EventType
3777
+ */
3778
+ export interface RaiseAuditCertificateMismatchEventData extends RaiseAuditCertificateEventData {}
3645
3779
  export interface OPCUAServer {
3646
3780
  /**
3647
3781
  * @internal
@@ -3661,6 +3795,12 @@ export interface OPCUAServer {
3661
3795
  raiseEvent(eventType: "AuditUrlMismatchEventType", options: RaiseEventAuditUrlMismatchEventTypeData): void;
3662
3796
 
3663
3797
  raiseEvent(eventType: "TransitionEventType", options: RaiseEventTransitionEventData): void;
3798
+
3799
+ raiseEvent(eventType: "AuditCertificateInvalidEventType", options: RaiseAuditCertificateInvalidEventData): void;
3800
+ raiseEvent(eventType: "AuditCertificateExpiredEventType", options: RaiseAuditCertificateExpiredEventData): void;
3801
+ raiseEvent(eventType: "AuditCertificateUntrustedEventType", options: RaiseAuditCertificateUntrustedEventData): void;
3802
+ raiseEvent(eventType: "AuditCertificateRevokedEventType", options: RaiseAuditCertificateRevokedEventData): void;
3803
+ raiseEvent(eventType: "AuditCertificateMismatchEventType", options: RaiseAuditCertificateMismatchEventData): void;
3664
3804
  }
3665
3805
 
3666
3806
  export interface OPCUAServer extends EventEmitter {