node-opcua-client 2.170.1 → 2.172.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import type { LocaleId } from "node-opcua-basic-types";
5
5
  import type { OPCUACertificateManager } from "node-opcua-certificate-manager";
6
- import type { OPCUASecureObject } from "node-opcua-common";
6
+ import type { ICertificateKeyPairProvider, ICertificateStore, OPCUASecureObject } from "node-opcua-common";
7
7
  import type { Certificate } from "node-opcua-crypto/web";
8
8
  import { ObjectRegistry } from "node-opcua-object-registry";
9
9
  import type { ResponseCallback } from "node-opcua-pseudo-session";
@@ -12,6 +12,7 @@ import type { FindServersOnNetworkRequestOptions, FindServersRequestOptions, Ser
12
12
  import type { ApplicationDescription, EndpointDescription } from "node-opcua-service-endpoints";
13
13
  import type { ChannelSecurityToken, MessageSecurityMode } from "node-opcua-service-secure-channel";
14
14
  import type { ErrorCallback } from "node-opcua-status-code";
15
+ import type { IClientTransportFactory } from "node-opcua-transport";
15
16
  import type { Request, Response } from "./common";
16
17
  export type FindServersRequestLike = FindServersRequestOptions;
17
18
  export type FindServersOnNetworkRequestLike = FindServersOnNetworkRequestOptions;
@@ -24,7 +25,7 @@ export interface FindEndpointOptions {
24
25
  privateKeyFile: string;
25
26
  applicationName: string;
26
27
  applicationUri: string;
27
- clientCertificateManager: OPCUACertificateManager;
28
+ clientCertificateManager: OPCUACertificateManager | ICertificateStore;
28
29
  }
29
30
  export interface FindEndpointResult {
30
31
  selectedEndpoint: EndpointDescription;
@@ -119,7 +120,7 @@ export interface OPCUAClientBaseOptions {
119
120
  * - you want multiple instances of OPCUAClient to share the same OPCUACertificateManager
120
121
  *
121
122
  */
122
- clientCertificateManager?: OPCUACertificateManager;
123
+ clientCertificateManager?: OPCUACertificateManager | ICertificateStore;
123
124
  /**
124
125
  * The client certificate pem file.
125
126
  *
@@ -166,6 +167,21 @@ export interface OPCUAClientBaseOptions {
166
167
  * defaultTransactionTimeout
167
168
  */
168
169
  defaultTransactionTimeout?: number;
170
+ /**
171
+ * An optional in-memory certificate/key provider.
172
+ *
173
+ * When supplied, the client skips disk-based certificate
174
+ * path resolution and uses the provider directly.
175
+ */
176
+ certificateKeyPairProvider?: ICertificateKeyPairProvider;
177
+ /**
178
+ * Optional factory for the underlying client transport. When omitted, the
179
+ * secure-channel layer uses `defaultClientTransportFactory` (a Node-only
180
+ * TCP transport). Consumers that need a different transport — browser
181
+ * WebSocket, in-process stub, tracing wrapper — pass a factory here and
182
+ * it is threaded through to `ClientSecureChannelLayer`.
183
+ */
184
+ transportFactory?: IClientTransportFactory;
169
185
  }
170
186
  export interface GetEndpointsOptions {
171
187
  endpointUrl?: string;
@@ -176,7 +192,7 @@ export interface OPCUAClientBase<Events extends OPCUAClientBaseEvents = OPCUACli
176
192
  /**
177
193
  * certificate Manager
178
194
  */
179
- readonly clientCertificateManager: OPCUACertificateManager;
195
+ readonly clientCertificateManager: ICertificateStore;
180
196
  /***
181
197
  *
182
198
  * @param endpointUrl the endpoint of the server to connect to ( i.e "opc.tcp://machine.name:3434/name" )
@@ -1 +1 @@
1
- {"version":3,"file":"client_base.js","sourceRoot":"","sources":["../source/client_base.ts"],"names":[],"mappings":";;;AAQA,2EAA4D;AA0X/C,QAAA,eAAe,GAAG;IAC3B,QAAQ,EAAE,IAAI,2CAAc,EAAE;IAC9B,UAAU,EAAE,IAAI,GAAG,CAAC;IAEpB,MAAM,CAAC,OAA+B;QAClC,mBAAmB;QACnB,OAAO,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"client_base.js","sourceRoot":"","sources":["../source/client_base.ts"],"names":[],"mappings":";;;AAQA,2EAA4D;AA4Y/C,QAAA,eAAe,GAAG;IAC3B,QAAQ,EAAE,IAAI,2CAAc,EAAE;IAC9B,UAAU,EAAE,IAAI,GAAG,CAAC;IAEpB,MAAM,CAAC,OAA+B;QAClC,mBAAmB;QACnB,OAAO,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module node-opcua-client
3
3
  */
4
- import type { EventEmitter } from "events";
4
+ import type { EventEmitter } from "node:events";
5
5
  import type { DateTime, UInt8 } from "node-opcua-basic-types";
6
6
  import type { ExtraDataTypeManager } from "node-opcua-client-dynamic-extension-object";
7
7
  import type { ServerState } from "node-opcua-common";
@@ -11,13 +11,13 @@ import type { LocalizedTextLike } from "node-opcua-data-model";
11
11
  import type { DataValue, TimestampsToReturn } from "node-opcua-data-value";
12
12
  import type { ExtensionObject } from "node-opcua-extension-object";
13
13
  import type { NodeId, NodeIdLike } from "node-opcua-nodeid";
14
- import { type ArgumentDefinition, type IBasicSession, type IBasicSessionBrowse, type IBasicSessionBrowseNext, type IBasicSessionCall, type IBasicSessionChangeUser, type IBasicSessionRead, type IBasicSessionTranslateBrowsePath, type IBasicSessionWrite, type MethodId, type ResponseCallback } from "node-opcua-pseudo-session";
14
+ import type { ArgumentDefinition, IBasicSession, IBasicSessionBrowse, IBasicSessionBrowseNext, IBasicSessionCall, IBasicSessionChangeUser, IBasicSessionRead, IBasicSessionTranslateBrowsePath, IBasicSessionWrite, MethodId, ResponseCallback } from "node-opcua-pseudo-session";
15
15
  import type { EndpointDescription } from "node-opcua-service-endpoints";
16
16
  import type { HistoryReadResult } from "node-opcua-service-history";
17
17
  import type { QueryFirstRequestOptions, QueryFirstResponse } from "node-opcua-service-query";
18
18
  import type { CreateMonitoredItemsRequestOptions, CreateMonitoredItemsResponse, CreateSubscriptionRequestOptions, CreateSubscriptionResponse, DeleteMonitoredItemsRequestOptions, DeleteMonitoredItemsResponse, DeleteSubscriptionsRequestOptions, DeleteSubscriptionsResponse, ModifyMonitoredItemsRequestOptions, ModifyMonitoredItemsResponse, ModifySubscriptionRequestOptions, ModifySubscriptionResponse, PublishRequest, PublishResponse, RepublishRequest, RepublishResponse, SetMonitoringModeRequestOptions, SetMonitoringModeResponse, SetTriggeringRequestOptions, SetTriggeringResponse, TransferSubscriptionsRequestOptions, TransferSubscriptionsResponse } from "node-opcua-service-subscription";
19
19
  import type { Callback, ErrorCallback, StatusCode } from "node-opcua-status-code";
20
- import { type AggregateConfigurationOptions, type HistoryReadRequest, type HistoryReadResponse, type HistoryReadValueIdOptions, type ReadValueIdOptions } from "node-opcua-types";
20
+ import type { AggregateConfigurationOptions, HistoryReadRequest, HistoryReadResponse, HistoryReadValueIdOptions, ReadValueIdOptions } from "node-opcua-types";
21
21
  import type { DataType, Variant } from "node-opcua-variant";
22
22
  export { ExtraDataTypeManager } from "node-opcua-client-dynamic-extension-object";
23
23
  export { ExtensionObject } from "node-opcua-extension-object";
@@ -1 +1 @@
1
- {"version":3,"file":"client_session.js","sourceRoot":"","sources":["../source/client_session.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAkEH,yGAAkF;AAAzE,kJAAA,oBAAoB,OAAA;AAE7B,2EAA8D;AAArD,8HAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"client_session.js","sourceRoot":"","sources":["../source/client_session.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+DH,yGAAkF;AAAzE,kJAAA,oBAAoB,OAAA;AAE7B,2EAA8D;AAArD,8HAAA,eAAe,OAAA"}
@@ -135,6 +135,33 @@ class ClientSessionKeepAliveManager extends events_1.EventEmitter {
135
135
  resolve(0);
136
136
  }
137
137
  else {
138
+ if (sc?.equals(node_opcua_status_code_1.StatusCodes.BadInvalidTimestamp)) {
139
+ // BadInvalidTimestamp (OPC UA Part 4 7.38.2, Table 178:
140
+ // "The timestamp is outside the range allowed by the Server")
141
+ // refers to the timestamp field of the RequestHeader
142
+ // (OPC UA Part 4 7.32), which the spec states is used
143
+ // "only for diagnostic and logging purposes in the Server".
144
+ //
145
+ // The server responded at the OPC UA application layer:
146
+ // the SecureChannel and Session are intact. The cause is
147
+ // clock skew between client and server; this is an
148
+ // infrastructure concern outside the scope of the keepalive
149
+ // manager.
150
+ //
151
+ // Treating this as a keepalive failure is semantically
152
+ // incorrect: the round-trip succeeded. Incrementing
153
+ // consecutiveFailures leads to unbounded exponential backoff
154
+ // and eventual session expiry server-side, triggering an
155
+ // unnecessary reconnect loop.
156
+ //
157
+ // See: https://reference.opcfoundation.org/Core/Part4/v105/docs/7.38.2
158
+ // https://reference.opcfoundation.org/Core/Part4/v105/docs/7.32
159
+ this.consecutiveFailures = 0;
160
+ debugLog("emit keepalive (BadInvalidTimestamp: session alive, clock skew on request timestamp)");
161
+ this.emit("keepalive", this.lastKnownState ?? node_opcua_common_1.ServerState.Unknown, this.count);
162
+ resolve(0);
163
+ return;
164
+ }
138
165
  this.consecutiveFailures++;
139
166
  warningLog("Keep alive received ServiceFault from server (session intact):", sc?.toString());
140
167
  this.emit("keepalive_failure");
@@ -1 +1 @@
1
- {"version":3,"file":"client_session_keepalive_manager.js","sourceRoot":"","sources":["../source/client_session_keepalive_manager.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,kDAA0B;AAC1B,mCAAsC;AACtC,yDAA2C;AAC3C,mEAAsD;AACtD,yDAAgD;AAChD,+DAAmD;AAEnD,uDAAkF;AAClF,yDAAiD;AACjD,yEAAqE;AAErE,mEAAqD;AAYrD,MAAM,uBAAuB,GAAG,IAAA,gCAAY,EAAC,kCAAW,CAAC,yBAAyB,CAAC,CAAC;AAEpF,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,IAAA,kCAAe,EAAC,UAAU,CAAC,CAAC;AAQ/C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAa,6BAA8B,SAAQ,qBAAY;IAC1C,OAAO,CAAoB;IACpC,OAAO,CAAkB;IACzB,WAAW,CAAS;IACpB,cAAc,CAAe;IAC7B,qBAAqB,GAAG,KAAK,CAAC;IAC9B,mBAAmB,GAAG,CAAC,CAAC;IACzB,KAAK,GAAG,CAAC,CAAC;IACV,aAAa,CAAS;IAE7B,YAAY,OAA0B;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,iBAA0B;QACnC,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,mBAAmB;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;YAC7B,UAAU,CACN,qFAAqF,IAAI,CAAC,OAAO,CAAC,OAAO,iFAAiF,CAC7L,CAAC;QACN,CAAC;QACD,mBAAmB;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACX,oEAAoE,IAAI,CAAC,OAAO,CAAC,OAAO,iFAAiF,CAC5K,CAAC;QACN,CAAC;QAED,MAAM,qBAAqB,GACvB,iBAAiB;YACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,oDAAwB,CAAC,uBAAuB,CAAC,CAAC;QAE5H,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,qBAAqB,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAExF,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;IAEM,IAAI;QACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,QAAQ,CAAC,oCAAoC,CAAC,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,qEAAqE,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;gBAChD,OAAO,CAAC,YAAY;YACxB,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,wFAAwF;gBACxF,2DAA2D;gBAC3D,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;gBAC7F,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;;;;;OAMG;IACK,KAAK,CAAC,YAAY;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACrC,QAAQ,CAAC,mEAAmE,CAAC,CAAC;YAC9E,OAAO,CAAC,CAAC;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,CAAC,oCAAoC;QAClD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,0BAA0B,GAAG,GAAG,GAAG,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACpF,IAAI,0BAA0B,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,QAAQ,CACJ,8HAA8H,EAC9H,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAC5B,gCAAgC,EAChC,0BAA0B,CAC7B,CAAC;YACF,6BAA6B;YAC7B,OAAO,0BAA0B,GAAG,IAAI,CAAC,WAAW,CAAC;QACzD,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,QAAQ,CAAC,kFAAkF,CAAC,CAAC;YAC7F,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,QAAQ,CAAC,kFAAkF,CAAC,CAAC;YAC7F,OAAO,CAAC,CAAC;QACb,CAAC;QACD,QAAQ,CACJ,uEAAuE,EACvE,0BAA0B,EAC1B,SAAS,EACT,IAAI,CAAC,OAAO,CAAC,OAAO,CACvB,CAAC;QAEF,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,6CAA6C;YAC7C,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,4BAA4B;QAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CACR;gBACI,MAAM,EAAE,uBAAuB;gBAC/B,WAAW,EAAE,qCAAY,CAAC,KAAK;aAClC,EACD,CAAC,GAAiB,EAAE,SAAqB,EAAE,EAAE;gBACzC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBAEnC,IAAI,GAAG,EAAE,CAAC;oBACN,UAAU,CAAC,eAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,EAAE,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3G,MAAM,oBAAoB,GAAI,GAAkC,CAAC,QAAQ,CAAC;oBAC1E,IAAI,oBAAoB,EAAE,CAAC;wBACvB,MAAM,EAAE,GAAG,oBAAoB,CAAC,cAAc,EAAE,aAAa,CAAC;wBAC9D,IAAI,EAAE,EAAE,MAAM,CAAC,oCAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,oCAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC;4BAC1F,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACrB,UAAU,CACN,yFAAyF,CAC5F,CAAC;4BACF,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;4BACrC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACf,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BAC3B,UAAU,CAAC,gEAAgE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;4BAC7F,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;4BAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;wBAC9F,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrB,UAAU,CAAC,yFAAyF,CAAC,CAAC;wBACtG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACrC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACf,CAAC;oBACD,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACjC;;;;uBAIG;oBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrB,UAAU,CAAC,yFAAyF,CAAC,CAAC;oBACtG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACrC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACX,OAAO;gBACX,CAAC;gBAED,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;oBAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,KAAoB,CAAC;oBACtD,iBAAiB;oBACjB,IAAI,QAAQ,KAAK,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;wBAC1D,UAAU,CACN,2DAA2D,EAC3D,+BAAW,CAAC,QAAQ,CAAC,EACrB,OAAO,EACP,+BAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CACnC,CAAC;oBACN,CAAC;oBACD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;oBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,8BAA8B;gBAChD,CAAC;gBACD,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC7B,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA/LD,sEA+LC;AAED,SAAS,mBAAmB,CAAC,MAA0B;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,OAAO,GAA8B,MAAc,CAAC,cAAc,CAAC;IACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO;IACX,CAAC;IACD,OAAO,CAAC,oBAAoB,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"client_session_keepalive_manager.js","sourceRoot":"","sources":["../source/client_session_keepalive_manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { type OPCUACertificateManager } from "node-opcua-certificate-manager";
2
- import { OPCUASecureObject } from "node-opcua-common";
1
+ import { type ICertificateStore, OPCUASecureObject } from "node-opcua-common";
3
2
  import { type Certificate } from "node-opcua-crypto/web";
4
3
  import type { IBasicTransportSettings, ResponseCallback } from "node-opcua-pseudo-session";
5
4
  import { ClientSecureChannelLayer, type ConnectionStrategy, type ConnectionStrategyOptions, type SecurityPolicy } from "node-opcua-secure-channel";
@@ -78,7 +77,8 @@ export declare class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUA
78
77
  private _instanceNumber;
79
78
  private _transportSettings;
80
79
  private _transportTimeout?;
81
- clientCertificateManager: OPCUACertificateManager;
80
+ private _transportFactory?;
81
+ clientCertificateManager: ICertificateStore;
82
82
  isUnusable(): boolean;
83
83
  protected _setInternalState(internalState: InternalClientState): void;
84
84
  emit<K>(eventName: K, ...others: unknown[]): boolean;
@@ -86,7 +86,7 @@ export declare class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUA
86
86
  private _cancel_reconnection;
87
87
  _recreate_secure_channel(callback: ErrorCallback): void;
88
88
  _internal_create_secure_channel(connectionStrategy: ConnectionStrategyOptions, callback: CreateSecureChannelCallbackFunc): void;
89
- static createCertificate(clientCertificateManager: OPCUACertificateManager, certificateFile: string, applicationName: string, applicationUri: string): Promise<void>;
89
+ static createCertificate(clientCertificateManager: ICertificateStore, certificateFile: string, applicationName: string, applicationUri: string): Promise<void>;
90
90
  createDefaultCertificate(): Promise<void>;
91
91
  protected _getBuiltApplicationUri(): string;
92
92
  protected initializeCM(): Promise<void>;
@@ -287,6 +287,7 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
287
287
  _instanceNumber;
288
288
  _transportSettings;
289
289
  _transportTimeout;
290
+ _transportFactory;
290
291
  clientCertificateManager;
291
292
  isUnusable() {
292
293
  return (this._internalState === "disconnected" ||
@@ -316,13 +317,25 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
316
317
  }
317
318
  constructor(options) {
318
319
  options = options || {};
319
- if (!options.clientCertificateManager) {
320
- options.clientCertificateManager = (0, node_opcua_certificate_manager_1.getDefaultCertificateManager)("PKI");
320
+ if (options.certificateKeyPairProvider) {
321
+ // In-memory path — use a lightweight in-memory store
322
+ // when no cert manager was explicitly provided.
323
+ if (!options.clientCertificateManager) {
324
+ options.clientCertificateManager = new node_opcua_common_1.InMemoryCertificateStore();
325
+ }
326
+ super(options);
327
+ }
328
+ else {
329
+ // Disk path — derive cert/key paths from certificate manager
330
+ if (!options.clientCertificateManager) {
331
+ options.clientCertificateManager = (0, node_opcua_certificate_manager_1.getDefaultCertificateManager)("PKI");
332
+ }
333
+ const cm = options.clientCertificateManager;
334
+ options.privateKeyFile = options.privateKeyFile || cm.privateKey;
335
+ options.certificateFile =
336
+ options.certificateFile || node_path_1.default.join(cm.rootDir, "own/certs/client_certificate.pem");
337
+ super(options);
321
338
  }
322
- options.privateKeyFile = options.privateKeyFile || options.clientCertificateManager.privateKey;
323
- options.certificateFile =
324
- options.certificateFile || node_path_1.default.join(options.clientCertificateManager.rootDir, "own/certs/client_certificate.pem");
325
- super(options);
326
339
  this._setInternalState("uninitialized");
327
340
  this._instanceNumber = g_ClientCounter++;
328
341
  this.applicationName = options.applicationName || "NodeOPCUA-Client";
@@ -364,6 +377,7 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
364
377
  this._setInternalState("disconnected");
365
378
  this._transportSettings = options.transportSettings || {};
366
379
  this._transportTimeout = options.transportTimeout;
380
+ this._transportFactory = options.transportFactory;
367
381
  }
368
382
  _cancel_reconnection(callback) {
369
383
  // _cancel_reconnection is invoked during disconnection
@@ -510,6 +524,7 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
510
524
  tokenRenewalInterval: this.tokenRenewalInterval,
511
525
  transportSettings: this._transportSettings,
512
526
  transportTimeout: this._transportTimeout,
527
+ transportFactory: this._transportFactory,
513
528
  defaultTransactionTimeout: this.defaultTransactionTimeout
514
529
  });
515
530
  secureChannel.on("backoff", (count, delay) => {
@@ -583,12 +598,16 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
583
598
  if (!node_fs_1.default.existsSync(certificateFile)) {
584
599
  const hostname = (0, node_opcua_hostname_1.getHostname)();
585
600
  // this.serverInfo.applicationUri!;
586
- await clientCertificateManager.createSelfSignedCertificate({
601
+ // Cast is safe: createDefaultCertificate only calls
602
+ // this in the disk path, where the manager is always
603
+ // an OPCUACertificateManager.
604
+ const cm = clientCertificateManager;
605
+ await cm.createSelfSignedCertificate({
587
606
  applicationUri,
588
607
  dns: [hostname],
589
608
  // ip: await getIpAddresses(),
590
609
  outputFile: certificateFile,
591
- subject: (0, node_opcua_certificate_manager_1.makeSubject)(applicationName, hostname),
610
+ subject: (0, node_opcua_common_1.makeSubject)(applicationName, hostname),
592
611
  startDate: new Date(),
593
612
  validity: 365 * 10 // 10 years
594
613
  });
@@ -613,7 +632,9 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
613
632
  warningLog("Creating default certificate ... please wait");
614
633
  await ClientBaseImpl.createCertificate(this.clientCertificateManager, this.certificateFile, this.applicationName, this._getBuiltApplicationUri());
615
634
  debugLog("privateKey = ", this.privateKeyFile);
616
- debugLog(" = ", this.clientCertificateManager.privateKey);
635
+ if ("privateKey" in this.clientCertificateManager) {
636
+ debugLog(" = ", this.clientCertificateManager.privateKey);
637
+ }
617
638
  debugLog("certificateFile = ", this.certificateFile);
618
639
  const _certificate = this.getCertificate();
619
640
  const _privateKey = this.getPrivateKey();
@@ -637,10 +658,16 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
637
658
  return;
638
659
  }
639
660
  await this.clientCertificateManager.initialize();
640
- await this.createDefaultCertificate();
641
- // c8 ignore next
642
- if (!node_fs_1.default.existsSync(this.privateKeyFile)) {
643
- throw new Error(` cannot locate private key file ${this.privateKeyFile}`);
661
+ if (this.certificateFile === "<in-memory>" || this.certificateFile === "<unknown>") {
662
+ // In-memory provider — cert already available, skip disk operations
663
+ }
664
+ else {
665
+ // Disk path — create default cert if missing
666
+ await this.createDefaultCertificate();
667
+ // c8 ignore next
668
+ if (!node_fs_1.default.existsSync(this.privateKeyFile)) {
669
+ throw new Error(` cannot locate private key file ${this.privateKeyFile}`);
670
+ }
644
671
  }
645
672
  if (this.isUnusable())
646
673
  return;
@@ -774,7 +801,8 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
774
801
  if (!this._secureChannel) {
775
802
  // this may happen if the Server has closed the connection abruptly for some unknown reason
776
803
  // or if the tcp connection has been broken.
777
- callback(new Error("performMessageTransaction: No SecureChannel , connection may have been canceled abruptly by server"));
804
+ callback(new Error("performMessageTransaction: No SecureChannel , connection may have been canceled abruptly by server" +
805
+ " while performing " + request.schema.name));
778
806
  return;
779
807
  }
780
808
  if (this._internalState !== "connected" &&
@@ -1165,7 +1193,9 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
1165
1193
  })
1166
1194
  .catch((err1) => {
1167
1195
  warningLog("[NODE-OPCUA-W25] client's server certificate verification has failed ", err1.message);
1168
- warningLog(" clientCertificateManager.rootDir = ", this.clientCertificateManager.rootDir);
1196
+ if ("rootDir" in this.clientCertificateManager) {
1197
+ warningLog(" clientCertificateManager.rootDir = ", this.clientCertificateManager.rootDir);
1198
+ }
1169
1199
  const chain = (0, web_1.split_der)(endpoint.serverCertificate);
1170
1200
  warningLog(` server certificate chain contains ${chain.length} element(s)`);
1171
1201
  for (let i = 0; i < chain.length; i++) {
@@ -1199,7 +1229,9 @@ class ClientBaseImpl extends node_opcua_common_1.OPCUASecureObject {
1199
1229
  }
1200
1230
  if (chain.length > 1) {
1201
1231
  warningLog(" verify also that the issuer certificate is trusted and the issuer's certificate is present in the issuer.cert folder\n" +
1202
- " of the client certificate manager located in ", this.clientCertificateManager.rootDir);
1232
+ " of the client certificate manager located in ", "rootDir" in this.clientCertificateManager
1233
+ ? this.clientCertificateManager.rootDir
1234
+ : "<in-memory>");
1203
1235
  }
1204
1236
  else {
1205
1237
  warningLog(" verify that the server certificate is trusted or that server certificate issuer's certificate is present in the issuer folder");
@@ -1 +1 @@
1
- {"version":3,"file":"client_base_impl.js","sourceRoot":"","sources":["../../source/private/client_base_impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client_base_impl.js","sourceRoot":"","sources":["../../source/private/client_base_impl.ts"],"names":[],"mappings":"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"}
package/dist/verify.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import type { OPCUACertificateManager } from "node-opcua-certificate-manager";
2
- import type { OPCUASecureObject } from "node-opcua-common";
1
+ import type { ICertificateStore, OPCUASecureObject } from "node-opcua-common";
3
2
  import { type Certificate } from "node-opcua-crypto/web";
4
3
  export declare function verifyIsOPCUAValidCertificate(certificate: Certificate, certificateFile: string, type: "client" | "server", applicationUri: string): void;
5
- export declare function performCertificateSanityCheck(secureObject: OPCUASecureObject, serverOrClient: "server" | "client", certificateManager: OPCUACertificateManager, applicationUri: string): Promise<void>;
4
+ export declare function performCertificateSanityCheck(secureObject: OPCUASecureObject, serverOrClient: "server" | "client", certificateStore: ICertificateStore, applicationUri: string): Promise<void>;
package/dist/verify.js CHANGED
@@ -91,7 +91,7 @@ function verifyIsOPCUAValidCertificate(certificate, certificateFile, type, appli
91
91
  `certificateFile = ${certificateFile}`);
92
92
  }
93
93
  }
94
- async function performCertificateSanityCheck(secureObject, serverOrClient, certificateManager, applicationUri) {
94
+ async function performCertificateSanityCheck(secureObject, serverOrClient, certificateStore, applicationUri) {
95
95
  // verify that certificate is matching private key, and inform the developer if not
96
96
  const certificate = secureObject.getCertificate();
97
97
  const privateKey = secureObject.getPrivateKey();
@@ -100,7 +100,6 @@ async function performCertificateSanityCheck(secureObject, serverOrClient, certi
100
100
  errorLog("[NODE-OPCUA-E01] Configuration error : the certificate and the private key do not match !");
101
101
  errorLog(" please check the configuration of the OPCUA Server");
102
102
  errorLog(" privateKey= ", secureObject.privateKeyFile);
103
- errorLog(" certificateManager.privateKey= ", certificateManager.privateKey);
104
103
  errorLog(" certificateFile= ", secureObject.certificateFile);
105
104
  throw new Error("[NODE-OPCUA-E01] Configuration error : the certificate and the private key do not match ! please fix your configuration");
106
105
  }
@@ -113,11 +112,9 @@ async function performCertificateSanityCheck(secureObject, serverOrClient, certi
113
112
  `The ${serverOrClient} is operating at risk. `);
114
113
  }
115
114
  const options = {
116
- acceptOutdatedCertificate: false,
117
- acceptOutDatedIssuerCertificate: false,
118
- acceptPendingCertificate: false
115
+ acceptOutdatedCertificate: false
119
116
  };
120
- const status = await certificateManager.verifyCertificate(certificate, options);
117
+ const status = await certificateStore.verifyCertificate(certificate, options);
121
118
  // BadCertificateUntrusted is expected for the application's own
122
119
  // certificate — it does not need to be in its own trust list.
123
120
  // Only warn about genuinely problematic statuses (expired,
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../source/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../source/verify.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-client",
3
- "version": "2.170.1",
3
+ "version": "2.172.0",
4
4
  "description": "pure nodejs OPCUA SDK - module client",
5
5
  "scripts": {
6
6
  "clean": "npx rimraf -g node_modules dist *.tsbuildinfo certificates",
@@ -16,54 +16,55 @@
16
16
  "dependencies": {
17
17
  "@ster5/global-mutex": "^3.3.0",
18
18
  "chalk": "4.1.2",
19
- "node-opcua-alarm-condition": "2.170.1",
19
+ "node-opcua-alarm-condition": "2.172.0",
20
20
  "node-opcua-assert": "2.164.0",
21
- "node-opcua-basic-types": "2.169.0",
22
- "node-opcua-buffer-utils": "2.169.0",
23
- "node-opcua-certificate-manager": "2.169.0",
24
- "node-opcua-client-dynamic-extension-object": "2.170.1",
25
- "node-opcua-common": "2.170.0",
21
+ "node-opcua-basic-types": "2.172.0",
22
+ "node-opcua-buffer-utils": "2.172.0",
23
+ "node-opcua-certificate-manager": "2.172.0",
24
+ "node-opcua-client-dynamic-extension-object": "2.172.0",
25
+ "node-opcua-common": "2.172.0",
26
26
  "node-opcua-constants": "2.157.0",
27
- "node-opcua-crypto": "5.3.5",
28
- "node-opcua-data-model": "2.170.0",
29
- "node-opcua-data-value": "2.170.0",
30
- "node-opcua-date-time": "2.169.0",
31
- "node-opcua-debug": "2.168.0",
32
- "node-opcua-extension-object": "2.169.0",
27
+ "node-opcua-crypto": "5.3.6",
28
+ "node-opcua-data-model": "2.172.0",
29
+ "node-opcua-data-value": "2.172.0",
30
+ "node-opcua-date-time": "2.172.0",
31
+ "node-opcua-debug": "2.172.0",
32
+ "node-opcua-extension-object": "2.172.0",
33
33
  "node-opcua-hostname": "2.167.0",
34
- "node-opcua-nodeid": "2.169.0",
35
- "node-opcua-numeric-range": "2.169.0",
36
- "node-opcua-object-registry": "2.169.0",
37
- "node-opcua-pki": "6.13.0",
38
- "node-opcua-pseudo-session": "2.170.1",
39
- "node-opcua-schemas": "2.170.0",
40
- "node-opcua-secure-channel": "2.170.1",
41
- "node-opcua-service-browse": "2.170.0",
42
- "node-opcua-service-call": "2.170.0",
43
- "node-opcua-service-discovery": "2.170.0",
44
- "node-opcua-service-endpoints": "2.170.0",
45
- "node-opcua-service-filter": "2.170.1",
46
- "node-opcua-service-history": "2.170.0",
47
- "node-opcua-service-query": "2.170.0",
48
- "node-opcua-service-read": "2.170.0",
49
- "node-opcua-service-register-node": "2.170.0",
50
- "node-opcua-service-secure-channel": "2.170.0",
51
- "node-opcua-service-session": "2.170.0",
52
- "node-opcua-service-subscription": "2.170.1",
53
- "node-opcua-service-translate-browse-path": "2.170.0",
54
- "node-opcua-service-write": "2.170.0",
55
- "node-opcua-status-code": "2.169.0",
56
- "node-opcua-types": "2.170.0",
57
- "node-opcua-utils": "2.169.0",
58
- "node-opcua-variant": "2.170.0",
34
+ "node-opcua-nodeid": "2.172.0",
35
+ "node-opcua-numeric-range": "2.172.0",
36
+ "node-opcua-object-registry": "2.172.0",
37
+ "node-opcua-pki": "6.17.0",
38
+ "node-opcua-pseudo-session": "2.172.0",
39
+ "node-opcua-schemas": "2.172.0",
40
+ "node-opcua-secure-channel": "2.172.0",
41
+ "node-opcua-service-browse": "2.172.0",
42
+ "node-opcua-service-call": "2.172.0",
43
+ "node-opcua-service-discovery": "2.172.0",
44
+ "node-opcua-service-endpoints": "2.172.0",
45
+ "node-opcua-service-filter": "2.172.0",
46
+ "node-opcua-service-history": "2.172.0",
47
+ "node-opcua-service-query": "2.172.0",
48
+ "node-opcua-service-read": "2.172.0",
49
+ "node-opcua-service-register-node": "2.172.0",
50
+ "node-opcua-service-secure-channel": "2.172.0",
51
+ "node-opcua-service-session": "2.172.0",
52
+ "node-opcua-service-subscription": "2.172.0",
53
+ "node-opcua-service-translate-browse-path": "2.172.0",
54
+ "node-opcua-service-write": "2.172.0",
55
+ "node-opcua-status-code": "2.172.0",
56
+ "node-opcua-transport": "2.172.0",
57
+ "node-opcua-types": "2.172.0",
58
+ "node-opcua-utils": "2.172.0",
59
+ "node-opcua-variant": "2.172.0",
59
60
  "thenify-ex": "4.4.0"
60
61
  },
61
62
  "devDependencies": {
62
63
  "dequeue": "^1.0.5",
63
- "node-opcua-address-space": "2.170.1",
64
- "node-opcua-binary-stream": "2.169.0",
65
- "node-opcua-factory": "2.169.0",
66
- "node-opcua-leak-detector": "2.169.0",
64
+ "node-opcua-address-space": "2.172.0",
65
+ "node-opcua-binary-stream": "2.172.0",
66
+ "node-opcua-factory": "2.172.0",
67
+ "node-opcua-leak-detector": "2.172.0",
67
68
  "node-opcua-nodesets": "2.163.1"
68
69
  },
69
70
  "eslintConfig": {
@@ -86,7 +87,7 @@
86
87
  "internet of things"
87
88
  ],
88
89
  "homepage": "http://node-opcua.github.io/",
89
- "gitHead": "40629feaff284ba70596149e58b3cc2a7a0e8f68",
90
+ "gitHead": "dfe9993a93b5c3897825e898b5f07b25952c7f45",
90
91
  "files": [
91
92
  "dist",
92
93
  "source"
@@ -4,7 +4,7 @@
4
4
  // tslint:disable:no-unused-expression
5
5
  import type { LocaleId } from "node-opcua-basic-types";
6
6
  import type { OPCUACertificateManager } from "node-opcua-certificate-manager";
7
- import type { OPCUASecureObject } from "node-opcua-common";
7
+ import type { ICertificateKeyPairProvider, ICertificateStore, OPCUASecureObject } from "node-opcua-common";
8
8
  import type { Certificate } from "node-opcua-crypto/web";
9
9
  import { ObjectRegistry } from "node-opcua-object-registry";
10
10
  import type { ResponseCallback } from "node-opcua-pseudo-session";
@@ -18,6 +18,7 @@ import type { FindServersOnNetworkRequestOptions, FindServersRequestOptions, Ser
18
18
  import type { ApplicationDescription, EndpointDescription } from "node-opcua-service-endpoints";
19
19
  import type { ChannelSecurityToken, MessageSecurityMode } from "node-opcua-service-secure-channel";
20
20
  import type { ErrorCallback } from "node-opcua-status-code";
21
+ import type { IClientTransportFactory } from "node-opcua-transport";
21
22
  import type { Request, Response } from "./common";
22
23
 
23
24
  export type FindServersRequestLike = FindServersRequestOptions;
@@ -32,7 +33,7 @@ export interface FindEndpointOptions {
32
33
  privateKeyFile: string;
33
34
  applicationName: string;
34
35
  applicationUri: string;
35
- clientCertificateManager: OPCUACertificateManager;
36
+ clientCertificateManager: OPCUACertificateManager | ICertificateStore;
36
37
  }
37
38
 
38
39
  export interface FindEndpointResult {
@@ -142,7 +143,7 @@ export interface OPCUAClientBaseOptions {
142
143
  * - you want multiple instances of OPCUAClient to share the same OPCUACertificateManager
143
144
  *
144
145
  */
145
- clientCertificateManager?: OPCUACertificateManager;
146
+ clientCertificateManager?: OPCUACertificateManager | ICertificateStore;
146
147
 
147
148
  /**
148
149
  * The client certificate pem file.
@@ -195,6 +196,23 @@ export interface OPCUAClientBaseOptions {
195
196
  * defaultTransactionTimeout
196
197
  */
197
198
  defaultTransactionTimeout?: number;
199
+
200
+ /**
201
+ * An optional in-memory certificate/key provider.
202
+ *
203
+ * When supplied, the client skips disk-based certificate
204
+ * path resolution and uses the provider directly.
205
+ */
206
+ certificateKeyPairProvider?: ICertificateKeyPairProvider;
207
+
208
+ /**
209
+ * Optional factory for the underlying client transport. When omitted, the
210
+ * secure-channel layer uses `defaultClientTransportFactory` (a Node-only
211
+ * TCP transport). Consumers that need a different transport — browser
212
+ * WebSocket, in-process stub, tracing wrapper — pass a factory here and
213
+ * it is threaded through to `ClientSecureChannelLayer`.
214
+ */
215
+ transportFactory?: IClientTransportFactory;
198
216
  }
199
217
 
200
218
  export interface GetEndpointsOptions {
@@ -207,7 +225,7 @@ export interface OPCUAClientBase<Events extends OPCUAClientBaseEvents = OPCUACli
207
225
  /**
208
226
  * certificate Manager
209
227
  */
210
- readonly clientCertificateManager: OPCUACertificateManager;
228
+ readonly clientCertificateManager: ICertificateStore;
211
229
 
212
230
  /***
213
231
  *
@@ -2,7 +2,7 @@
2
2
  * @module node-opcua-client
3
3
  */
4
4
 
5
- import type { EventEmitter } from "events";
5
+ import type { EventEmitter } from "node:events";
6
6
 
7
7
  import type { DateTime, UInt8 } from "node-opcua-basic-types";
8
8
  import type { ExtraDataTypeManager } from "node-opcua-client-dynamic-extension-object";
@@ -13,19 +13,18 @@ import type { LocalizedTextLike } from "node-opcua-data-model";
13
13
  import type { DataValue, TimestampsToReturn } from "node-opcua-data-value";
14
14
  import type { ExtensionObject } from "node-opcua-extension-object";
15
15
  import type { NodeId, NodeIdLike } from "node-opcua-nodeid";
16
- import {
17
- type ArgumentDefinition,
18
- CallMethodRequestLike,
19
- type IBasicSession,
20
- type IBasicSessionBrowse,
21
- type IBasicSessionBrowseNext,
22
- type IBasicSessionCall,
23
- type IBasicSessionChangeUser,
24
- type IBasicSessionRead,
25
- type IBasicSessionTranslateBrowsePath,
26
- type IBasicSessionWrite,
27
- type MethodId,
28
- type ResponseCallback
16
+ import type {
17
+ ArgumentDefinition,
18
+ IBasicSession,
19
+ IBasicSessionBrowse,
20
+ IBasicSessionBrowseNext,
21
+ IBasicSessionCall,
22
+ IBasicSessionChangeUser,
23
+ IBasicSessionRead,
24
+ IBasicSessionTranslateBrowsePath,
25
+ IBasicSessionWrite,
26
+ MethodId,
27
+ ResponseCallback
29
28
  } from "node-opcua-pseudo-session";
30
29
  import type { EndpointDescription } from "node-opcua-service-endpoints";
31
30
  import type { HistoryReadResult } from "node-opcua-service-history";
@@ -55,14 +54,12 @@ import type {
55
54
  TransferSubscriptionsResponse
56
55
  } from "node-opcua-service-subscription";
57
56
  import type { Callback, ErrorCallback, StatusCode } from "node-opcua-status-code";
58
- import {
59
- type AggregateConfigurationOptions,
60
- CallMethodResult,
61
- type HistoryReadRequest,
62
- type HistoryReadResponse,
63
- type HistoryReadValueIdOptions,
64
- ReadValueId,
65
- type ReadValueIdOptions
57
+ import type {
58
+ AggregateConfigurationOptions,
59
+ HistoryReadRequest,
60
+ HistoryReadResponse,
61
+ HistoryReadValueIdOptions,
62
+ ReadValueIdOptions
66
63
  } from "node-opcua-types";
67
64
  import type { DataType, Variant } from "node-opcua-variant";
68
65
 
@@ -182,6 +182,33 @@ export class ClientSessionKeepAliveManager extends EventEmitter implements Clien
182
182
  terminateConnection(session._client);
183
183
  resolve(0);
184
184
  } else {
185
+ if (sc?.equals(StatusCodes.BadInvalidTimestamp)) {
186
+ // BadInvalidTimestamp (OPC UA Part 4 7.38.2, Table 178:
187
+ // "The timestamp is outside the range allowed by the Server")
188
+ // refers to the timestamp field of the RequestHeader
189
+ // (OPC UA Part 4 7.32), which the spec states is used
190
+ // "only for diagnostic and logging purposes in the Server".
191
+ //
192
+ // The server responded at the OPC UA application layer:
193
+ // the SecureChannel and Session are intact. The cause is
194
+ // clock skew between client and server; this is an
195
+ // infrastructure concern outside the scope of the keepalive
196
+ // manager.
197
+ //
198
+ // Treating this as a keepalive failure is semantically
199
+ // incorrect: the round-trip succeeded. Incrementing
200
+ // consecutiveFailures leads to unbounded exponential backoff
201
+ // and eventual session expiry server-side, triggering an
202
+ // unnecessary reconnect loop.
203
+ //
204
+ // See: https://reference.opcfoundation.org/Core/Part4/v105/docs/7.38.2
205
+ // https://reference.opcfoundation.org/Core/Part4/v105/docs/7.32
206
+ this.consecutiveFailures = 0;
207
+ debugLog("emit keepalive (BadInvalidTimestamp: session alive, clock skew on request timestamp)");
208
+ this.emit("keepalive", this.lastKnownState ?? ServerState.Unknown, this.count);
209
+ resolve(0);
210
+ return;
211
+ }
185
212
  this.consecutiveFailures++;
186
213
  warningLog("Keep alive received ServiceFault from server (session intact):", sc?.toString());
187
214
  this.emit("keepalive_failure");
@@ -9,8 +9,8 @@ import { withLock } from "@ster5/global-mutex";
9
9
 
10
10
  import chalk from "chalk";
11
11
  import { assert } from "node-opcua-assert";
12
- import { getDefaultCertificateManager, makeSubject, type OPCUACertificateManager } from "node-opcua-certificate-manager";
13
- import { type IOPCUASecureObjectOptions, makeApplicationUrn, OPCUASecureObject } from "node-opcua-common";
12
+ import { getDefaultCertificateManager, type OPCUACertificateManager } from "node-opcua-certificate-manager";
13
+ import { type ICertificateStore, InMemoryCertificateStore, type IOPCUASecureObjectOptions, makeApplicationUrn, makeSubject, OPCUASecureObject } from "node-opcua-common";
14
14
  import { type Certificate, makeSHA1Thumbprint, split_der } from "node-opcua-crypto/web";
15
15
  import { installPeriodicClockAdjustment, periodicClockAdjustment, uninstallPeriodicClockAdjustment } from "node-opcua-date-time";
16
16
  import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
@@ -27,6 +27,7 @@ import {
27
27
  type Response as Response1,
28
28
  type SecurityPolicy
29
29
  } from "node-opcua-secure-channel";
30
+ import type { IClientTransportFactory } from "node-opcua-transport";
30
31
  import {
31
32
  FindServersOnNetworkRequest,
32
33
  type FindServersOnNetworkRequestOptions,
@@ -228,7 +229,7 @@ function __findEndpoint(this: ClientBaseImpl, endpointUrl: string, params: FindE
228
229
  /**
229
230
  * check if certificate is trusted or untrusted
230
231
  */
231
- async function _verify_serverCertificate(certificateManager: OPCUACertificateManager, serverCertificate: Certificate) {
232
+ async function _verify_serverCertificate(certificateManager: ICertificateStore, serverCertificate: Certificate) {
232
233
  const status = await certificateManager.checkCertificate(serverCertificate);
233
234
  if (!status.isGood()) {
234
235
  // c8 ignore next
@@ -387,8 +388,9 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
387
388
  private _instanceNumber: number;
388
389
  private _transportSettings: TransportSettings;
389
390
  private _transportTimeout?: number;
391
+ private _transportFactory?: IClientTransportFactory;
390
392
 
391
- public clientCertificateManager: OPCUACertificateManager;
393
+ public clientCertificateManager: ICertificateStore;
392
394
 
393
395
  public isUnusable() {
394
396
  return (
@@ -430,14 +432,25 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
430
432
  }
431
433
  constructor(options?: OPCUAClientBaseOptions) {
432
434
  options = options || {};
433
- if (!options.clientCertificateManager) {
434
- options.clientCertificateManager = getDefaultCertificateManager("PKI");
435
- }
436
- options.privateKeyFile = options.privateKeyFile || options.clientCertificateManager.privateKey;
437
- options.certificateFile =
438
- options.certificateFile || path.join(options.clientCertificateManager.rootDir, "own/certs/client_certificate.pem");
439
435
 
440
- super(options as IOPCUASecureObjectOptions);
436
+ if (options.certificateKeyPairProvider) {
437
+ // In-memory path — use a lightweight in-memory store
438
+ // when no cert manager was explicitly provided.
439
+ if (!options.clientCertificateManager) {
440
+ options.clientCertificateManager = new InMemoryCertificateStore();
441
+ }
442
+ super(options as IOPCUASecureObjectOptions);
443
+ } else {
444
+ // Disk path — derive cert/key paths from certificate manager
445
+ if (!options.clientCertificateManager) {
446
+ options.clientCertificateManager = getDefaultCertificateManager("PKI");
447
+ }
448
+ const cm = options.clientCertificateManager as OPCUACertificateManager;
449
+ options.privateKeyFile = options.privateKeyFile || cm.privateKey;
450
+ options.certificateFile =
451
+ options.certificateFile || path.join(cm.rootDir, "own/certs/client_certificate.pem");
452
+ super(options as IOPCUASecureObjectOptions);
453
+ }
441
454
 
442
455
  this._setInternalState("uninitialized");
443
456
 
@@ -450,7 +463,7 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
450
463
  // we need to delay _applicationUri initialization
451
464
  this._applicationUri = options.applicationUri || this._getBuiltApplicationUri();
452
465
 
453
- this.clientCertificateManager = options.clientCertificateManager;
466
+ this.clientCertificateManager = options.clientCertificateManager!;
454
467
  this.clientCertificateManager.referenceCounter++;
455
468
 
456
469
  this._secureChannel = null;
@@ -502,6 +515,7 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
502
515
 
503
516
  this._transportSettings = options.transportSettings || {};
504
517
  this._transportTimeout = options.transportTimeout;
518
+ this._transportFactory = options.transportFactory;
505
519
  }
506
520
 
507
521
  private _cancel_reconnection(callback: ErrorCallback) {
@@ -695,6 +709,7 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
695
709
  tokenRenewalInterval: this.tokenRenewalInterval,
696
710
  transportSettings: this._transportSettings,
697
711
  transportTimeout: this._transportTimeout,
712
+ transportFactory: this._transportFactory,
698
713
  defaultTransactionTimeout: this.defaultTransactionTimeout
699
714
  });
700
715
  secureChannel.on("backoff", (count: number, delay: number) => {
@@ -773,7 +788,7 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
773
788
  }
774
789
 
775
790
  static async createCertificate(
776
- clientCertificateManager: OPCUACertificateManager,
791
+ clientCertificateManager: ICertificateStore,
777
792
  certificateFile: string,
778
793
  applicationName: string,
779
794
  applicationUri: string
@@ -781,7 +796,11 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
781
796
  if (!fs.existsSync(certificateFile)) {
782
797
  const hostname = getHostname();
783
798
  // this.serverInfo.applicationUri!;
784
- await clientCertificateManager.createSelfSignedCertificate({
799
+ // Cast is safe: createDefaultCertificate only calls
800
+ // this in the disk path, where the manager is always
801
+ // an OPCUACertificateManager.
802
+ const cm = clientCertificateManager as unknown as OPCUACertificateManager;
803
+ await cm.createSelfSignedCertificate({
785
804
  applicationUri,
786
805
  dns: [hostname],
787
806
  // ip: await getIpAddresses(),
@@ -819,7 +838,9 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
819
838
  this._getBuiltApplicationUri()
820
839
  );
821
840
  debugLog("privateKey = ", this.privateKeyFile);
822
- debugLog(" = ", this.clientCertificateManager.privateKey);
841
+ if ("privateKey" in this.clientCertificateManager) {
842
+ debugLog(" = ", (this.clientCertificateManager as unknown as OPCUACertificateManager).privateKey);
843
+ }
823
844
  debugLog("certificateFile = ", this.certificateFile);
824
845
  const _certificate = this.getCertificate();
825
846
  const _privateKey = this.getPrivateKey();
@@ -847,10 +868,16 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
847
868
  return;
848
869
  }
849
870
  await this.clientCertificateManager.initialize();
850
- await this.createDefaultCertificate();
851
- // c8 ignore next
852
- if (!fs.existsSync(this.privateKeyFile)) {
853
- throw new Error(` cannot locate private key file ${this.privateKeyFile}`);
871
+
872
+ if (this.certificateFile === "<in-memory>" || this.certificateFile === "<unknown>") {
873
+ // In-memory provider — cert already available, skip disk operations
874
+ } else {
875
+ // Disk path — create default cert if missing
876
+ await this.createDefaultCertificate();
877
+ // c8 ignore next
878
+ if (!fs.existsSync(this.privateKeyFile)) {
879
+ throw new Error(` cannot locate private key file ${this.privateKeyFile}`);
880
+ }
854
881
  }
855
882
  if (this.isUnusable()) return;
856
883
 
@@ -1001,7 +1028,10 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
1001
1028
  // this may happen if the Server has closed the connection abruptly for some unknown reason
1002
1029
  // or if the tcp connection has been broken.
1003
1030
  callback(
1004
- new Error("performMessageTransaction: No SecureChannel , connection may have been canceled abruptly by server")
1031
+ new Error(
1032
+ "performMessageTransaction: No SecureChannel , connection may have been canceled abruptly by server" +
1033
+ " while performing " + request.schema.name
1034
+ )
1005
1035
  );
1006
1036
  return;
1007
1037
  }
@@ -1479,7 +1509,9 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
1479
1509
  })
1480
1510
  .catch((err1: Error) => {
1481
1511
  warningLog("[NODE-OPCUA-W25] client's server certificate verification has failed ", err1.message);
1482
- warningLog(" clientCertificateManager.rootDir = ", this.clientCertificateManager.rootDir);
1512
+ if ("rootDir" in this.clientCertificateManager) {
1513
+ warningLog(" clientCertificateManager.rootDir = ", (this.clientCertificateManager as unknown as { rootDir: string }).rootDir);
1514
+ }
1483
1515
 
1484
1516
  const chain = split_der(endpoint.serverCertificate);
1485
1517
  warningLog(` server certificate chain contains ${chain.length} element(s)`);
@@ -1515,7 +1547,9 @@ export class ClientBaseImpl<Events extends OPCUAClientBaseEvents = OPCUAClientBa
1515
1547
  warningLog(
1516
1548
  " verify also that the issuer certificate is trusted and the issuer's certificate is present in the issuer.cert folder\n" +
1517
1549
  " of the client certificate manager located in ",
1518
- this.clientCertificateManager.rootDir
1550
+ "rootDir" in this.clientCertificateManager
1551
+ ? (this.clientCertificateManager as unknown as { rootDir: string }).rootDir
1552
+ : "<in-memory>"
1519
1553
  );
1520
1554
  } else {
1521
1555
  warningLog(
package/source/verify.ts CHANGED
@@ -1,9 +1,7 @@
1
- import type { OPCUACertificateManager } from "node-opcua-certificate-manager";
2
- import type { OPCUASecureObject } from "node-opcua-common";
1
+ import type { ICertificateStore, OPCUASecureObject } from "node-opcua-common";
3
2
 
4
3
  import { type Certificate, exploreCertificate, explorePrivateKey, publicKeyAndPrivateKeyMatches } from "node-opcua-crypto/web";
5
4
  import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
6
- import type { VerifyCertificateOptions } from "node-opcua-pki";
7
5
 
8
6
  const _doDebug = checkDebugFlag(__filename);
9
7
  const _debugLog = make_debugLog(__filename);
@@ -117,7 +115,7 @@ export function verifyIsOPCUAValidCertificate(
117
115
  export async function performCertificateSanityCheck(
118
116
  secureObject: OPCUASecureObject,
119
117
  serverOrClient: "server" | "client",
120
- certificateManager: OPCUACertificateManager,
118
+ certificateStore: ICertificateStore,
121
119
  applicationUri: string
122
120
  ): Promise<void> {
123
121
  // verify that certificate is matching private key, and inform the developer if not
@@ -128,7 +126,6 @@ export async function performCertificateSanityCheck(
128
126
  errorLog("[NODE-OPCUA-E01] Configuration error : the certificate and the private key do not match !");
129
127
  errorLog(" please check the configuration of the OPCUA Server");
130
128
  errorLog(" privateKey= ", secureObject.privateKeyFile);
131
- errorLog(" certificateManager.privateKey= ", certificateManager.privateKey);
132
129
  errorLog(" certificateFile= ", secureObject.certificateFile);
133
130
  throw new Error(
134
131
  "[NODE-OPCUA-E01] Configuration error : the certificate and the private key do not match ! please fix your configuration"
@@ -145,13 +142,11 @@ export async function performCertificateSanityCheck(
145
142
  );
146
143
  }
147
144
 
148
- const options: VerifyCertificateOptions = {
149
- acceptOutdatedCertificate: false,
150
- acceptOutDatedIssuerCertificate: false,
151
- acceptPendingCertificate: false
145
+ const options = {
146
+ acceptOutdatedCertificate: false
152
147
  };
153
148
 
154
- const status = await certificateManager.verifyCertificate(certificate, options);
149
+ const status = await certificateStore.verifyCertificate(certificate, options);
155
150
 
156
151
  // BadCertificateUntrusted is expected for the application's own
157
152
  // certificate — it does not need to be in its own trust list.