opcjs-client 0.1.10 → 0.1.16-alpha

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ChannelFactory, SecureChannel, Configuration, Encoder, BinaryWriter, registerEncoders, Decoder, BinaryReader, registerTypeDecoders, registerBinaryDecoders, NodeId, UserTokenTypeEnum, AnonymousIdentityToken, UserNameIdentityToken, IssuedIdentityToken, SubscriptionAcknowledgement, CreateSubscriptionRequest, PublishRequest, ReadValueId, QualifiedName, MonitoringParameters, ExtensionObject, MonitoredItemCreateRequest, MonitoringModeEnum, CreateMonitoredItemsRequest, TimestampsToReturnEnum, ReadRequest, ApplicationDescription, LocalizedText, ApplicationTypeEnum, CreateSessionRequest, CreateSessionResponse, SignatureData, ActivateSessionRequest, RequestHeader } from 'opcjs-base';
1
+ import { initLoggerProvider, getLogger, WebSocketFascade, WebSocketReadableStream, WebSocketWritableStream, SecureChannelContext, TcpMessageInjector, TcpConnectionHandler, TcpMessageDecoupler, SecureChannelMesssageEncoder, SecureChannelTypeDecoder, SecureChannelMessageDecoder, SecureChannelTypeEncoder, SecureChannelChunkWriter, SecureChannelChunkReader, SecureChannelFacade, CallMethodRequest, Variant, Configuration, LoggerFactory, Encoder, BinaryWriter, registerEncoders, Decoder, BinaryReader, registerTypeDecoders, registerBinaryDecoders, UserTokenTypeEnum, AnonymousIdentityToken, UserNameIdentityToken, IssuedIdentityToken, NodeId, ReadValueId, QualifiedName, ReadRequest, TimestampsToReturnEnum, CallRequest, SubscriptionAcknowledgement, CreateSubscriptionRequest, PublishRequest, MonitoringParameters, ExtensionObject, MonitoredItemCreateRequest, MonitoringModeEnum, CreateMonitoredItemsRequest, ApplicationDescription, LocalizedText, ApplicationTypeEnum, CreateSessionRequest, CreateSessionResponse, SignatureData, ActivateSessionRequest, RequestHeader } from 'opcjs-base';
2
2
 
3
3
  // src/client.ts
4
4
  var ServiceBase = class {
@@ -25,8 +25,9 @@ var SessionService = class _SessionService extends ServiceBase {
25
25
  super(authToken, secureChannel);
26
26
  this.configuration = configuration;
27
27
  }
28
+ logger = getLogger("services.SessionService");
28
29
  async createSession() {
29
- console.log("Creating session...");
30
+ this.logger.debug("Creating session...");
30
31
  const clientDescription = new ApplicationDescription();
31
32
  clientDescription.applicationUri = this.configuration.applicationUri;
32
33
  clientDescription.productUri = this.configuration.productUri;
@@ -45,7 +46,7 @@ var SessionService = class _SessionService extends ServiceBase {
45
46
  request.clientCertificate = null;
46
47
  request.requestedSessionTimeout = 6e4;
47
48
  request.maxResponseMessageSize = 0;
48
- console.log("Sending CreateSessionRequest...");
49
+ this.logger.debug("Sending CreateSessionRequest...");
49
50
  const response = await this.secureChannel.issueServiceRequest(request);
50
51
  if (!response || !(response instanceof CreateSessionResponse)) {
51
52
  throw new Error("Invalid response type for CreateSessionRequest");
@@ -65,7 +66,7 @@ var SessionService = class _SessionService extends ServiceBase {
65
66
  if (!serverEndpoint) {
66
67
  throw new Error(`Server endpoint ${endpoint} not found in CreateSessionResponse`);
67
68
  }
68
- console.log("Session created with id:", castedResponse.sessionId.identifier);
69
+ this.logger.debug("Session created with id:", castedResponse.sessionId.identifier);
69
70
  return {
70
71
  sessionId: castedResponse.sessionId.identifier,
71
72
  authToken: castedResponse.authenticationToken,
@@ -83,9 +84,9 @@ var SessionService = class _SessionService extends ServiceBase {
83
84
  request.localeIds = ["en-US"];
84
85
  request.userIdentityToken = ExtensionObject.newBinary(identityToken);
85
86
  request.userTokenSignature = signatureData;
86
- console.log("Sending ActivateSessionRequest...");
87
+ this.logger.debug("Sending ActivateSessionRequest...");
87
88
  await this.secureChannel.issueServiceRequest(request);
88
- console.log("Session activated.");
89
+ this.logger.debug("Session activated.");
89
90
  }
90
91
  recreate(authToken) {
91
92
  return new _SessionService(authToken, this.secureChannel, this.configuration);
@@ -168,6 +169,265 @@ var SessionHandler = class {
168
169
  // src/services/attributeServiceAttributes.ts
169
170
  var AttrIdValue = 13;
170
171
 
172
+ // ../base/src/types/statusCode.ts
173
+ function StatusCodeToString(statusCode) {
174
+ if (statusCode === void 0) {
175
+ return "Unknown";
176
+ }
177
+ const name = Object.entries(StatusCode).find(([, v]) => v === statusCode)?.[0];
178
+ return name ?? `0x${statusCode.toString(16).toUpperCase().padStart(8, "0")}`;
179
+ }
180
+ var StatusCode = /* @__PURE__ */ ((StatusCode2) => {
181
+ StatusCode2[StatusCode2["Good"] = 0] = "Good";
182
+ StatusCode2[StatusCode2["Uncertain"] = 1073741824] = "Uncertain";
183
+ StatusCode2[StatusCode2["Bad"] = 2147483648] = "Bad";
184
+ StatusCode2[StatusCode2["BadUnexpectedError"] = 2147549184] = "BadUnexpectedError";
185
+ StatusCode2[StatusCode2["BadInternalError"] = 2147614720] = "BadInternalError";
186
+ StatusCode2[StatusCode2["BadOutOfMemory"] = 2147680256] = "BadOutOfMemory";
187
+ StatusCode2[StatusCode2["BadResourceUnavailable"] = 2147745792] = "BadResourceUnavailable";
188
+ StatusCode2[StatusCode2["BadCommunicationError"] = 2147811328] = "BadCommunicationError";
189
+ StatusCode2[StatusCode2["BadEncodingError"] = 2147876864] = "BadEncodingError";
190
+ StatusCode2[StatusCode2["BadDecodingError"] = 2147942400] = "BadDecodingError";
191
+ StatusCode2[StatusCode2["BadEncodingLimitsExceeded"] = 2148007936] = "BadEncodingLimitsExceeded";
192
+ StatusCode2[StatusCode2["BadRequestTooLarge"] = 2159542272] = "BadRequestTooLarge";
193
+ StatusCode2[StatusCode2["BadResponseTooLarge"] = 2159607808] = "BadResponseTooLarge";
194
+ StatusCode2[StatusCode2["BadUnknownResponse"] = 2148073472] = "BadUnknownResponse";
195
+ StatusCode2[StatusCode2["BadTimeout"] = 2148139008] = "BadTimeout";
196
+ StatusCode2[StatusCode2["BadServiceUnsupported"] = 2148204544] = "BadServiceUnsupported";
197
+ StatusCode2[StatusCode2["BadShutdown"] = 2148270080] = "BadShutdown";
198
+ StatusCode2[StatusCode2["BadServerNotConnected"] = 2148335616] = "BadServerNotConnected";
199
+ StatusCode2[StatusCode2["BadServerHalted"] = 2148401152] = "BadServerHalted";
200
+ StatusCode2[StatusCode2["BadNothingToDo"] = 2148466688] = "BadNothingToDo";
201
+ StatusCode2[StatusCode2["BadTooManyOperations"] = 2148532224] = "BadTooManyOperations";
202
+ StatusCode2[StatusCode2["BadTooManyMonitoredItems"] = 2161836032] = "BadTooManyMonitoredItems";
203
+ StatusCode2[StatusCode2["BadDataTypeIdUnknown"] = 2148597760] = "BadDataTypeIdUnknown";
204
+ StatusCode2[StatusCode2["BadCertificateInvalid"] = 2148663296] = "BadCertificateInvalid";
205
+ StatusCode2[StatusCode2["BadSecurityChecksFailed"] = 2148728832] = "BadSecurityChecksFailed";
206
+ StatusCode2[StatusCode2["BadCertificatePolicyCheckFailed"] = 2165571584] = "BadCertificatePolicyCheckFailed";
207
+ StatusCode2[StatusCode2["BadCertificateTimeInvalid"] = 2148794368] = "BadCertificateTimeInvalid";
208
+ StatusCode2[StatusCode2["BadCertificateIssuerTimeInvalid"] = 2148859904] = "BadCertificateIssuerTimeInvalid";
209
+ StatusCode2[StatusCode2["BadCertificateHostNameInvalid"] = 2148925440] = "BadCertificateHostNameInvalid";
210
+ StatusCode2[StatusCode2["BadCertificateUriInvalid"] = 2148990976] = "BadCertificateUriInvalid";
211
+ StatusCode2[StatusCode2["BadCertificateUseNotAllowed"] = 2149056512] = "BadCertificateUseNotAllowed";
212
+ StatusCode2[StatusCode2["BadCertificateIssuerUseNotAllowed"] = 2149122048] = "BadCertificateIssuerUseNotAllowed";
213
+ StatusCode2[StatusCode2["BadCertificateUntrusted"] = 2149187584] = "BadCertificateUntrusted";
214
+ StatusCode2[StatusCode2["BadCertificateRevocationUnknown"] = 2149253120] = "BadCertificateRevocationUnknown";
215
+ StatusCode2[StatusCode2["BadCertificateIssuerRevocationUnknown"] = 2149318656] = "BadCertificateIssuerRevocationUnknown";
216
+ StatusCode2[StatusCode2["BadCertificateRevoked"] = 2149384192] = "BadCertificateRevoked";
217
+ StatusCode2[StatusCode2["BadCertificateIssuerRevoked"] = 2149449728] = "BadCertificateIssuerRevoked";
218
+ StatusCode2[StatusCode2["BadCertificateChainIncomplete"] = 2165112832] = "BadCertificateChainIncomplete";
219
+ StatusCode2[StatusCode2["BadUserAccessDenied"] = 2149515264] = "BadUserAccessDenied";
220
+ StatusCode2[StatusCode2["BadIdentityTokenInvalid"] = 2149580800] = "BadIdentityTokenInvalid";
221
+ StatusCode2[StatusCode2["BadIdentityTokenRejected"] = 2149646336] = "BadIdentityTokenRejected";
222
+ StatusCode2[StatusCode2["BadSecureChannelIdInvalid"] = 2149711872] = "BadSecureChannelIdInvalid";
223
+ StatusCode2[StatusCode2["BadInvalidTimestamp"] = 2149777408] = "BadInvalidTimestamp";
224
+ StatusCode2[StatusCode2["BadNonceInvalid"] = 2149842944] = "BadNonceInvalid";
225
+ StatusCode2[StatusCode2["BadSessionIdInvalid"] = 2149908480] = "BadSessionIdInvalid";
226
+ StatusCode2[StatusCode2["BadSessionClosed"] = 2149974016] = "BadSessionClosed";
227
+ StatusCode2[StatusCode2["BadSessionNotActivated"] = 2150039552] = "BadSessionNotActivated";
228
+ StatusCode2[StatusCode2["BadSubscriptionIdInvalid"] = 2150105088] = "BadSubscriptionIdInvalid";
229
+ StatusCode2[StatusCode2["BadRequestHeaderInvalid"] = 2150236160] = "BadRequestHeaderInvalid";
230
+ StatusCode2[StatusCode2["BadTimestampsToReturnInvalid"] = 2150301696] = "BadTimestampsToReturnInvalid";
231
+ StatusCode2[StatusCode2["BadRequestCancelledByClient"] = 2150367232] = "BadRequestCancelledByClient";
232
+ StatusCode2[StatusCode2["BadTooManyArguments"] = 2162491392] = "BadTooManyArguments";
233
+ StatusCode2[StatusCode2["BadLicenseExpired"] = 2165178368] = "BadLicenseExpired";
234
+ StatusCode2[StatusCode2["BadLicenseLimitsExceeded"] = 2165243904] = "BadLicenseLimitsExceeded";
235
+ StatusCode2[StatusCode2["BadLicenseNotAvailable"] = 2165309440] = "BadLicenseNotAvailable";
236
+ StatusCode2[StatusCode2["GoodSubscriptionTransferred"] = 2949120] = "GoodSubscriptionTransferred";
237
+ StatusCode2[StatusCode2["GoodCompletesAsynchronously"] = 3014656] = "GoodCompletesAsynchronously";
238
+ StatusCode2[StatusCode2["GoodOverload"] = 3080192] = "GoodOverload";
239
+ StatusCode2[StatusCode2["GoodClamped"] = 3145728] = "GoodClamped";
240
+ StatusCode2[StatusCode2["BadNoCommunication"] = 2150694912] = "BadNoCommunication";
241
+ StatusCode2[StatusCode2["BadWaitingForInitialData"] = 2150760448] = "BadWaitingForInitialData";
242
+ StatusCode2[StatusCode2["BadNodeIdInvalid"] = 2150825984] = "BadNodeIdInvalid";
243
+ StatusCode2[StatusCode2["BadNodeIdUnknown"] = 2150891520] = "BadNodeIdUnknown";
244
+ StatusCode2[StatusCode2["BadAttributeIdInvalid"] = 2150957056] = "BadAttributeIdInvalid";
245
+ StatusCode2[StatusCode2["BadIndexRangeInvalid"] = 2151022592] = "BadIndexRangeInvalid";
246
+ StatusCode2[StatusCode2["BadIndexRangeNoData"] = 2151088128] = "BadIndexRangeNoData";
247
+ StatusCode2[StatusCode2["BadDataEncodingInvalid"] = 2151153664] = "BadDataEncodingInvalid";
248
+ StatusCode2[StatusCode2["BadDataEncodingUnsupported"] = 2151219200] = "BadDataEncodingUnsupported";
249
+ StatusCode2[StatusCode2["BadNotReadable"] = 2151284736] = "BadNotReadable";
250
+ StatusCode2[StatusCode2["BadNotWritable"] = 2151350272] = "BadNotWritable";
251
+ StatusCode2[StatusCode2["BadOutOfRange"] = 2151415808] = "BadOutOfRange";
252
+ StatusCode2[StatusCode2["BadNotSupported"] = 2151481344] = "BadNotSupported";
253
+ StatusCode2[StatusCode2["BadNotFound"] = 2151546880] = "BadNotFound";
254
+ StatusCode2[StatusCode2["BadObjectDeleted"] = 2151612416] = "BadObjectDeleted";
255
+ StatusCode2[StatusCode2["BadNotImplemented"] = 2151677952] = "BadNotImplemented";
256
+ StatusCode2[StatusCode2["BadMonitoringModeInvalid"] = 2151743488] = "BadMonitoringModeInvalid";
257
+ StatusCode2[StatusCode2["BadMonitoredItemIdInvalid"] = 2151809024] = "BadMonitoredItemIdInvalid";
258
+ StatusCode2[StatusCode2["BadMonitoredItemFilterInvalid"] = 2151874560] = "BadMonitoredItemFilterInvalid";
259
+ StatusCode2[StatusCode2["BadMonitoredItemFilterUnsupported"] = 2151940096] = "BadMonitoredItemFilterUnsupported";
260
+ StatusCode2[StatusCode2["BadFilterNotAllowed"] = 2152005632] = "BadFilterNotAllowed";
261
+ StatusCode2[StatusCode2["BadStructureMissing"] = 2152071168] = "BadStructureMissing";
262
+ StatusCode2[StatusCode2["BadEventFilterInvalid"] = 2152136704] = "BadEventFilterInvalid";
263
+ StatusCode2[StatusCode2["BadContentFilterInvalid"] = 2152202240] = "BadContentFilterInvalid";
264
+ StatusCode2[StatusCode2["BadFilterOperatorInvalid"] = 2160132096] = "BadFilterOperatorInvalid";
265
+ StatusCode2[StatusCode2["BadFilterOperatorUnsupported"] = 2160197632] = "BadFilterOperatorUnsupported";
266
+ StatusCode2[StatusCode2["BadFilterOperandCountMismatch"] = 2160263168] = "BadFilterOperandCountMismatch";
267
+ StatusCode2[StatusCode2["BadFilterOperandInvalid"] = 2152267776] = "BadFilterOperandInvalid";
268
+ StatusCode2[StatusCode2["BadFilterElementInvalid"] = 2160328704] = "BadFilterElementInvalid";
269
+ StatusCode2[StatusCode2["BadFilterLiteralInvalid"] = 2160394240] = "BadFilterLiteralInvalid";
270
+ StatusCode2[StatusCode2["BadContinuationPointInvalid"] = 2152333312] = "BadContinuationPointInvalid";
271
+ StatusCode2[StatusCode2["BadNoContinuationPoints"] = 2152398848] = "BadNoContinuationPoints";
272
+ StatusCode2[StatusCode2["BadReferenceTypeIdInvalid"] = 2152464384] = "BadReferenceTypeIdInvalid";
273
+ StatusCode2[StatusCode2["BadBrowseDirectionInvalid"] = 2152529920] = "BadBrowseDirectionInvalid";
274
+ StatusCode2[StatusCode2["BadNodeNotInView"] = 2152595456] = "BadNodeNotInView";
275
+ StatusCode2[StatusCode2["BadNumericOverflow"] = 2165440512] = "BadNumericOverflow";
276
+ StatusCode2[StatusCode2["BadServerUriInvalid"] = 2152660992] = "BadServerUriInvalid";
277
+ StatusCode2[StatusCode2["BadServerNameMissing"] = 2152726528] = "BadServerNameMissing";
278
+ StatusCode2[StatusCode2["BadDiscoveryUrlMissing"] = 2152792064] = "BadDiscoveryUrlMissing";
279
+ StatusCode2[StatusCode2["BadSempahoreFileMissing"] = 2152857600] = "BadSempahoreFileMissing";
280
+ StatusCode2[StatusCode2["BadRequestTypeInvalid"] = 2152923136] = "BadRequestTypeInvalid";
281
+ StatusCode2[StatusCode2["BadSecurityModeRejected"] = 2152988672] = "BadSecurityModeRejected";
282
+ StatusCode2[StatusCode2["BadSecurityPolicyRejected"] = 2153054208] = "BadSecurityPolicyRejected";
283
+ StatusCode2[StatusCode2["BadTooManySessions"] = 2153119744] = "BadTooManySessions";
284
+ StatusCode2[StatusCode2["BadUserSignatureInvalid"] = 2153185280] = "BadUserSignatureInvalid";
285
+ StatusCode2[StatusCode2["BadApplicationSignatureInvalid"] = 2153250816] = "BadApplicationSignatureInvalid";
286
+ StatusCode2[StatusCode2["BadNoValidCertificates"] = 2153316352] = "BadNoValidCertificates";
287
+ StatusCode2[StatusCode2["BadIdentityChangeNotSupported"] = 2160459776] = "BadIdentityChangeNotSupported";
288
+ StatusCode2[StatusCode2["BadRequestCancelledByRequest"] = 2153381888] = "BadRequestCancelledByRequest";
289
+ StatusCode2[StatusCode2["BadParentNodeIdInvalid"] = 2153447424] = "BadParentNodeIdInvalid";
290
+ StatusCode2[StatusCode2["BadReferenceNotAllowed"] = 2153512960] = "BadReferenceNotAllowed";
291
+ StatusCode2[StatusCode2["BadNodeIdRejected"] = 2153578496] = "BadNodeIdRejected";
292
+ StatusCode2[StatusCode2["BadNodeIdExists"] = 2153644032] = "BadNodeIdExists";
293
+ StatusCode2[StatusCode2["BadNodeClassInvalid"] = 2153709568] = "BadNodeClassInvalid";
294
+ StatusCode2[StatusCode2["BadBrowseNameInvalid"] = 2153775104] = "BadBrowseNameInvalid";
295
+ StatusCode2[StatusCode2["BadBrowseNameDuplicated"] = 2153840640] = "BadBrowseNameDuplicated";
296
+ StatusCode2[StatusCode2["BadNodeAttributesInvalid"] = 2153906176] = "BadNodeAttributesInvalid";
297
+ StatusCode2[StatusCode2["BadTypeDefinitionInvalid"] = 2153971712] = "BadTypeDefinitionInvalid";
298
+ StatusCode2[StatusCode2["BadSourceNodeIdInvalid"] = 2154037248] = "BadSourceNodeIdInvalid";
299
+ StatusCode2[StatusCode2["BadTargetNodeIdInvalid"] = 2154102784] = "BadTargetNodeIdInvalid";
300
+ StatusCode2[StatusCode2["BadDuplicateReferenceNotAllowed"] = 2154168320] = "BadDuplicateReferenceNotAllowed";
301
+ StatusCode2[StatusCode2["BadInvalidSelfReference"] = 2154233856] = "BadInvalidSelfReference";
302
+ StatusCode2[StatusCode2["BadReferenceLocalOnly"] = 2154299392] = "BadReferenceLocalOnly";
303
+ StatusCode2[StatusCode2["BadNoDeleteRights"] = 2154364928] = "BadNoDeleteRights";
304
+ StatusCode2[StatusCode2["UncertainReferenceNotDeleted"] = 1086062592] = "UncertainReferenceNotDeleted";
305
+ StatusCode2[StatusCode2["BadServerIndexInvalid"] = 2154430464] = "BadServerIndexInvalid";
306
+ StatusCode2[StatusCode2["BadViewIdUnknown"] = 2154496e3] = "BadViewIdUnknown";
307
+ StatusCode2[StatusCode2["BadViewTimestampInvalid"] = 2160656384] = "BadViewTimestampInvalid";
308
+ StatusCode2[StatusCode2["BadViewParameterMismatch"] = 2160721920] = "BadViewParameterMismatch";
309
+ StatusCode2[StatusCode2["BadViewVersionInvalid"] = 2160787456] = "BadViewVersionInvalid";
310
+ StatusCode2[StatusCode2["UncertainNotAllNodesAvailable"] = 1086324736] = "UncertainNotAllNodesAvailable";
311
+ StatusCode2[StatusCode2["GoodResultsMayBeIncomplete"] = 12189696] = "GoodResultsMayBeIncomplete";
312
+ StatusCode2[StatusCode2["BadNotTypeDefinition"] = 2160590848] = "BadNotTypeDefinition";
313
+ StatusCode2[StatusCode2["UncertainReferenceOutOfServer"] = 1080819712] = "UncertainReferenceOutOfServer";
314
+ StatusCode2[StatusCode2["BadTooManyMatches"] = 2154627072] = "BadTooManyMatches";
315
+ StatusCode2[StatusCode2["BadQueryTooComplex"] = 2154692608] = "BadQueryTooComplex";
316
+ StatusCode2[StatusCode2["BadNoMatch"] = 2154758144] = "BadNoMatch";
317
+ StatusCode2[StatusCode2["BadMaxAgeInvalid"] = 2154823680] = "BadMaxAgeInvalid";
318
+ StatusCode2[StatusCode2["BadSecurityModeInsufficient"] = 2162556928] = "BadSecurityModeInsufficient";
319
+ StatusCode2[StatusCode2["BadHistoryOperationInvalid"] = 2154889216] = "BadHistoryOperationInvalid";
320
+ StatusCode2[StatusCode2["BadHistoryOperationUnsupported"] = 2154954752] = "BadHistoryOperationUnsupported";
321
+ StatusCode2[StatusCode2["BadInvalidTimestampArgument"] = 2159869952] = "BadInvalidTimestampArgument";
322
+ StatusCode2[StatusCode2["BadWriteNotSupported"] = 2155020288] = "BadWriteNotSupported";
323
+ StatusCode2[StatusCode2["BadTypeMismatch"] = 2155085824] = "BadTypeMismatch";
324
+ StatusCode2[StatusCode2["BadMethodInvalid"] = 2155151360] = "BadMethodInvalid";
325
+ StatusCode2[StatusCode2["BadArgumentsMissing"] = 2155216896] = "BadArgumentsMissing";
326
+ StatusCode2[StatusCode2["BadNotExecutable"] = 2165374976] = "BadNotExecutable";
327
+ StatusCode2[StatusCode2["BadTooManySubscriptions"] = 2155282432] = "BadTooManySubscriptions";
328
+ StatusCode2[StatusCode2["BadTooManyPublishRequests"] = 2155347968] = "BadTooManyPublishRequests";
329
+ StatusCode2[StatusCode2["BadNoSubscription"] = 2155413504] = "BadNoSubscription";
330
+ StatusCode2[StatusCode2["BadSequenceNumberUnknown"] = 2155479040] = "BadSequenceNumberUnknown";
331
+ StatusCode2[StatusCode2["BadMessageNotAvailable"] = 2155544576] = "BadMessageNotAvailable";
332
+ StatusCode2[StatusCode2["BadInsufficientClientProfile"] = 2155610112] = "BadInsufficientClientProfile";
333
+ StatusCode2[StatusCode2["BadStateNotActive"] = 2160001024] = "BadStateNotActive";
334
+ StatusCode2[StatusCode2["BadAlreadyExists"] = 2165637120] = "BadAlreadyExists";
335
+ StatusCode2[StatusCode2["BadTcpServerTooBusy"] = 2155675648] = "BadTcpServerTooBusy";
336
+ StatusCode2[StatusCode2["BadTcpMessageTypeInvalid"] = 2155741184] = "BadTcpMessageTypeInvalid";
337
+ StatusCode2[StatusCode2["BadTcpSecureChannelUnknown"] = 2155806720] = "BadTcpSecureChannelUnknown";
338
+ StatusCode2[StatusCode2["BadTcpMessageTooLarge"] = 2155872256] = "BadTcpMessageTooLarge";
339
+ StatusCode2[StatusCode2["BadTcpNotEnoughResources"] = 2155937792] = "BadTcpNotEnoughResources";
340
+ StatusCode2[StatusCode2["BadTcpInternalError"] = 2156003328] = "BadTcpInternalError";
341
+ StatusCode2[StatusCode2["BadTcpEndpointUrlInvalid"] = 2156068864] = "BadTcpEndpointUrlInvalid";
342
+ StatusCode2[StatusCode2["BadRequestInterrupted"] = 2156134400] = "BadRequestInterrupted";
343
+ StatusCode2[StatusCode2["BadRequestTimeout"] = 2156199936] = "BadRequestTimeout";
344
+ StatusCode2[StatusCode2["BadSecureChannelClosed"] = 2156265472] = "BadSecureChannelClosed";
345
+ StatusCode2[StatusCode2["BadSecureChannelTokenUnknown"] = 2156331008] = "BadSecureChannelTokenUnknown";
346
+ StatusCode2[StatusCode2["BadSequenceNumberInvalid"] = 2156396544] = "BadSequenceNumberInvalid";
347
+ StatusCode2[StatusCode2["BadProtocolVersionUnsupported"] = 2159935488] = "BadProtocolVersionUnsupported";
348
+ StatusCode2[StatusCode2["BadConfigurationError"] = 2156462080] = "BadConfigurationError";
349
+ StatusCode2[StatusCode2["BadNotConnected"] = 2156527616] = "BadNotConnected";
350
+ StatusCode2[StatusCode2["BadDeviceFailure"] = 2156593152] = "BadDeviceFailure";
351
+ StatusCode2[StatusCode2["BadSensorFailure"] = 2156658688] = "BadSensorFailure";
352
+ StatusCode2[StatusCode2["BadOutOfService"] = 2156724224] = "BadOutOfService";
353
+ StatusCode2[StatusCode2["BadDeadbandFilterInvalid"] = 2156789760] = "BadDeadbandFilterInvalid";
354
+ StatusCode2[StatusCode2["UncertainNoCommunicationLastUsableValue"] = 1083113472] = "UncertainNoCommunicationLastUsableValue";
355
+ StatusCode2[StatusCode2["UncertainLastUsableValue"] = 1083179008] = "UncertainLastUsableValue";
356
+ StatusCode2[StatusCode2["UncertainSubstituteValue"] = 1083244544] = "UncertainSubstituteValue";
357
+ StatusCode2[StatusCode2["UncertainInitialValue"] = 1083310080] = "UncertainInitialValue";
358
+ StatusCode2[StatusCode2["UncertainSensorNotAccurate"] = 1083375616] = "UncertainSensorNotAccurate";
359
+ StatusCode2[StatusCode2["UncertainEngineeringUnitsExceeded"] = 1083441152] = "UncertainEngineeringUnitsExceeded";
360
+ StatusCode2[StatusCode2["UncertainSubNormal"] = 1083506688] = "UncertainSubNormal";
361
+ StatusCode2[StatusCode2["GoodLocalOverride"] = 9830400] = "GoodLocalOverride";
362
+ StatusCode2[StatusCode2["BadRefreshInProgress"] = 2157379584] = "BadRefreshInProgress";
363
+ StatusCode2[StatusCode2["BadConditionAlreadyDisabled"] = 2157445120] = "BadConditionAlreadyDisabled";
364
+ StatusCode2[StatusCode2["BadConditionAlreadyEnabled"] = 2160852992] = "BadConditionAlreadyEnabled";
365
+ StatusCode2[StatusCode2["BadConditionDisabled"] = 2157510656] = "BadConditionDisabled";
366
+ StatusCode2[StatusCode2["BadEventIdUnknown"] = 2157576192] = "BadEventIdUnknown";
367
+ StatusCode2[StatusCode2["BadEventNotAcknowledgeable"] = 2159738880] = "BadEventNotAcknowledgeable";
368
+ StatusCode2[StatusCode2["BadDialogNotActive"] = 2160918528] = "BadDialogNotActive";
369
+ StatusCode2[StatusCode2["BadDialogResponseInvalid"] = 2160984064] = "BadDialogResponseInvalid";
370
+ StatusCode2[StatusCode2["BadConditionBranchAlreadyAcked"] = 2161049600] = "BadConditionBranchAlreadyAcked";
371
+ StatusCode2[StatusCode2["BadConditionBranchAlreadyConfirmed"] = 2161115136] = "BadConditionBranchAlreadyConfirmed";
372
+ StatusCode2[StatusCode2["BadConditionAlreadyShelved"] = 2161180672] = "BadConditionAlreadyShelved";
373
+ StatusCode2[StatusCode2["BadConditionNotShelved"] = 2161246208] = "BadConditionNotShelved";
374
+ StatusCode2[StatusCode2["BadShelvingTimeOutOfRange"] = 2161311744] = "BadShelvingTimeOutOfRange";
375
+ StatusCode2[StatusCode2["BadNoData"] = 2157641728] = "BadNoData";
376
+ StatusCode2[StatusCode2["BadBoundNotFound"] = 2161573888] = "BadBoundNotFound";
377
+ StatusCode2[StatusCode2["BadBoundNotSupported"] = 2161639424] = "BadBoundNotSupported";
378
+ StatusCode2[StatusCode2["BadDataLost"] = 2157772800] = "BadDataLost";
379
+ StatusCode2[StatusCode2["BadDataUnavailable"] = 2157838336] = "BadDataUnavailable";
380
+ StatusCode2[StatusCode2["BadEntryExists"] = 2157903872] = "BadEntryExists";
381
+ StatusCode2[StatusCode2["BadNoEntryExists"] = 2157969408] = "BadNoEntryExists";
382
+ StatusCode2[StatusCode2["BadTimestampNotSupported"] = 2158034944] = "BadTimestampNotSupported";
383
+ StatusCode2[StatusCode2["GoodEntryInserted"] = 10616832] = "GoodEntryInserted";
384
+ StatusCode2[StatusCode2["GoodEntryReplaced"] = 10682368] = "GoodEntryReplaced";
385
+ StatusCode2[StatusCode2["UncertainDataSubNormal"] = 1084489728] = "UncertainDataSubNormal";
386
+ StatusCode2[StatusCode2["GoodNoData"] = 10813440] = "GoodNoData";
387
+ StatusCode2[StatusCode2["GoodMoreData"] = 10878976] = "GoodMoreData";
388
+ StatusCode2[StatusCode2["BadAggregateListMismatch"] = 2161377280] = "BadAggregateListMismatch";
389
+ StatusCode2[StatusCode2["BadAggregateNotSupported"] = 2161442816] = "BadAggregateNotSupported";
390
+ StatusCode2[StatusCode2["BadAggregateInvalidInputs"] = 2161508352] = "BadAggregateInvalidInputs";
391
+ StatusCode2[StatusCode2["BadAggregateConfigurationRejected"] = 2161770496] = "BadAggregateConfigurationRejected";
392
+ StatusCode2[StatusCode2["GoodDataIgnored"] = 14221312] = "GoodDataIgnored";
393
+ StatusCode2[StatusCode2["BadRequestNotAllowed"] = 2162425856] = "BadRequestNotAllowed";
394
+ StatusCode2[StatusCode2["BadRequestNotComplete"] = 2165506048] = "BadRequestNotComplete";
395
+ StatusCode2[StatusCode2["GoodEdited"] = 14417920] = "GoodEdited";
396
+ StatusCode2[StatusCode2["GoodPostActionFailed"] = 14483456] = "GoodPostActionFailed";
397
+ StatusCode2[StatusCode2["UncertainDominantValueChanged"] = 1088290816] = "UncertainDominantValueChanged";
398
+ StatusCode2[StatusCode2["GoodDependentValueChanged"] = 14680064] = "GoodDependentValueChanged";
399
+ StatusCode2[StatusCode2["BadDominantValueChanged"] = 2162229248] = "BadDominantValueChanged";
400
+ StatusCode2[StatusCode2["UncertainDependentValueChanged"] = 1088552960] = "UncertainDependentValueChanged";
401
+ StatusCode2[StatusCode2["BadDependentValueChanged"] = 2162360320] = "BadDependentValueChanged";
402
+ StatusCode2[StatusCode2["GoodEditedDependentValueChanged"] = 18219008] = "GoodEditedDependentValueChanged";
403
+ StatusCode2[StatusCode2["GoodEditedDominantValueChanged"] = 18284544] = "GoodEditedDominantValueChanged";
404
+ StatusCode2[StatusCode2["GoodEditedDominantValueChangedDependentValueChanged"] = 18350080] = "GoodEditedDominantValueChangedDependentValueChanged";
405
+ StatusCode2[StatusCode2["BadEditedOutOfRange"] = 2165899264] = "BadEditedOutOfRange";
406
+ StatusCode2[StatusCode2["BadInitialValueOutOfRange"] = 2165964800] = "BadInitialValueOutOfRange";
407
+ StatusCode2[StatusCode2["BadOutOfRangeDominantValueChanged"] = 2166030336] = "BadOutOfRangeDominantValueChanged";
408
+ StatusCode2[StatusCode2["BadEditedOutOfRangeDominantValueChanged"] = 2166095872] = "BadEditedOutOfRangeDominantValueChanged";
409
+ StatusCode2[StatusCode2["BadOutOfRangeDominantValueChangedDependentValueChanged"] = 2166161408] = "BadOutOfRangeDominantValueChangedDependentValueChanged";
410
+ StatusCode2[StatusCode2["BadEditedOutOfRangeDominantValueChangedDependentValueChanged"] = 2166226944] = "BadEditedOutOfRangeDominantValueChangedDependentValueChanged";
411
+ StatusCode2[StatusCode2["GoodCommunicationEvent"] = 10944512] = "GoodCommunicationEvent";
412
+ StatusCode2[StatusCode2["GoodShutdownEvent"] = 11010048] = "GoodShutdownEvent";
413
+ StatusCode2[StatusCode2["GoodCallAgain"] = 11075584] = "GoodCallAgain";
414
+ StatusCode2[StatusCode2["GoodNonCriticalTimeout"] = 11141120] = "GoodNonCriticalTimeout";
415
+ StatusCode2[StatusCode2["BadInvalidArgument"] = 2158690304] = "BadInvalidArgument";
416
+ StatusCode2[StatusCode2["BadConnectionRejected"] = 2158755840] = "BadConnectionRejected";
417
+ StatusCode2[StatusCode2["BadDisconnect"] = 2158821376] = "BadDisconnect";
418
+ StatusCode2[StatusCode2["BadConnectionClosed"] = 2158886912] = "BadConnectionClosed";
419
+ StatusCode2[StatusCode2["BadInvalidState"] = 2158952448] = "BadInvalidState";
420
+ StatusCode2[StatusCode2["BadEndOfStream"] = 2159017984] = "BadEndOfStream";
421
+ StatusCode2[StatusCode2["BadNoDataAvailable"] = 2159083520] = "BadNoDataAvailable";
422
+ StatusCode2[StatusCode2["BadWaitingForResponse"] = 2159149056] = "BadWaitingForResponse";
423
+ StatusCode2[StatusCode2["BadOperationAbandoned"] = 2159214592] = "BadOperationAbandoned";
424
+ StatusCode2[StatusCode2["BadExpectedStreamToBlock"] = 2159280128] = "BadExpectedStreamToBlock";
425
+ StatusCode2[StatusCode2["BadWouldBlock"] = 2159345664] = "BadWouldBlock";
426
+ StatusCode2[StatusCode2["BadSyntaxError"] = 2159411200] = "BadSyntaxError";
427
+ StatusCode2[StatusCode2["BadMaxConnectionsReached"] = 2159476736] = "BadMaxConnectionsReached";
428
+ return StatusCode2;
429
+ })(StatusCode || {});
430
+
171
431
  // src/services/attributeService.ts
172
432
  var AttributeService = class extends ServiceBase {
173
433
  async ReadValue(nodeIds) {
@@ -187,9 +447,9 @@ var AttributeService = class extends ServiceBase {
187
447
  console.log("Sending ReadRequest...");
188
448
  const response = await this.secureChannel.issueServiceRequest(request);
189
449
  const results = new Array();
190
- for (let dataValue of response.results ?? []) {
450
+ for (const dataValue of response.results ?? []) {
191
451
  const result = {
192
- status: dataValue.statusCode?.toString() ?? "Unknown",
452
+ status: StatusCodeToString(dataValue.statusCode),
193
453
  value: dataValue.value
194
454
  };
195
455
  results.push(result);
@@ -233,7 +493,7 @@ var SubscriptionHandler = class {
233
493
  }
234
494
  const subscriptionId = await this.subscriptionService.createSubscription();
235
495
  const items = [];
236
- for (let id of ids) {
496
+ for (const id of ids) {
237
497
  const entry = new SubscriptionHandlerEntry(
238
498
  subscriptionId,
239
499
  this.nextHandle++,
@@ -242,7 +502,7 @@ var SubscriptionHandler = class {
242
502
  );
243
503
  this.entries.push(entry);
244
504
  const item = {
245
- id: id.toNodeId(),
505
+ id,
246
506
  handle: entry.handle
247
507
  };
248
508
  items.push(item);
@@ -261,12 +521,12 @@ var SubscriptionHandler = class {
261
521
  const response = await this.subscriptionService.publish(acknowledgements);
262
522
  const messagesToAcknowledge = response.notificationMessage.sequenceNumber;
263
523
  const notificationDatas = response.notificationMessage.notificationData;
264
- for (let notificationData of notificationDatas) {
524
+ for (const notificationData of notificationDatas) {
265
525
  const decodedData = notificationData.data;
266
526
  const typeNodeId = notificationData.typeId;
267
527
  if (typeNodeId.namespace === 0 && typeNodeId.identifier === 811) {
268
528
  const dataChangeNotification = decodedData;
269
- for (let item of dataChangeNotification.monitoredItems) {
529
+ for (const item of dataChangeNotification.monitoredItems) {
270
530
  const clientHandle = item.clientHandle;
271
531
  const value = item.value;
272
532
  const entry = this.entries.find((e) => e.handle == clientHandle);
@@ -346,6 +606,34 @@ var MonitoredItemService = class extends ServiceBase {
346
606
  super(authToken, secureChannel);
347
607
  }
348
608
  };
609
+ var MethodService = class extends ServiceBase {
610
+ /**
611
+ * Calls one or more methods on the server (OPC UA Part 4, Section 5.11.2).
612
+ * @param methodsToCall - Array of CallMethodRequest describing each method to invoke.
613
+ * @returns Array of CallMethodResult, one per requested method.
614
+ */
615
+ async call(methodsToCall) {
616
+ const request = new CallRequest();
617
+ request.requestHeader = this.createRequestHeader();
618
+ request.methodsToCall = methodsToCall;
619
+ const response = await this.secureChannel.issueServiceRequest(request);
620
+ return response.results.map((result) => ({
621
+ status: StatusCodeToString(result.statusCode),
622
+ value: result.outputArguments.map((arg) => arg.value)
623
+ }));
624
+ }
625
+ constructor(authToken, secureChannel) {
626
+ super(authToken, secureChannel);
627
+ }
628
+ };
629
+
630
+ // src/callMethodResult.ts
631
+ var CallMethodResult = class {
632
+ constructor(values, status) {
633
+ this.values = values;
634
+ this.status = status;
635
+ }
636
+ };
349
637
 
350
638
  // src/client.ts
351
639
  var Client = class {
@@ -353,11 +641,15 @@ var Client = class {
353
641
  this.configuration = configuration;
354
642
  this.identity = identity;
355
643
  this.endpointUrl = endpointUrl;
644
+ initLoggerProvider(configuration.loggerFactory);
645
+ this.logger = getLogger("Client");
356
646
  }
357
647
  endpointUrl;
358
- channel;
648
+ attributeService;
649
+ methodService;
359
650
  session;
360
651
  subscriptionHandler;
652
+ logger;
361
653
  getSession() {
362
654
  if (!this.session) {
363
655
  throw new Error("No session available");
@@ -365,43 +657,99 @@ var Client = class {
365
657
  return this.session;
366
658
  }
367
659
  async connect() {
368
- const channel = ChannelFactory.createChannel(this.endpointUrl);
660
+ const wsOptions = { endpoint: this.endpointUrl };
661
+ const ws = new WebSocketFascade(wsOptions);
662
+ const webSocketReadableStream = new WebSocketReadableStream(ws, 1e3);
663
+ const webSocketWritableStream = new WebSocketWritableStream(ws);
664
+ const scContext = new SecureChannelContext(this.endpointUrl);
665
+ const tcpMessageInjector = new TcpMessageInjector();
666
+ const tcpConnectionHandler = new TcpConnectionHandler(tcpMessageInjector, scContext);
667
+ const tcpMessageDecoupler = new TcpMessageDecoupler(tcpConnectionHandler.onTcpMessage.bind(tcpConnectionHandler));
668
+ const scMessageEncoder = new SecureChannelMesssageEncoder(scContext);
669
+ const scTypeDecoder = new SecureChannelTypeDecoder(
670
+ this.configuration.decoder
671
+ );
672
+ const scMessageDecoder = new SecureChannelMessageDecoder(scContext);
673
+ const scTypeEncoder = new SecureChannelTypeEncoder(
674
+ this.configuration.encoder
675
+ );
676
+ const scChunkWriter = new SecureChannelChunkWriter(scContext);
677
+ const scChunkReader = new SecureChannelChunkReader(scContext);
678
+ webSocketReadableStream.pipeTo(tcpMessageDecoupler.writable);
679
+ tcpMessageDecoupler.readable.pipeTo(scMessageDecoder.writable);
680
+ scMessageDecoder.readable.pipeTo(scChunkReader.writable);
681
+ scChunkReader.readable.pipeTo(scTypeDecoder.writable);
682
+ scTypeEncoder.readable.pipeTo(scChunkWriter.writable);
683
+ scChunkWriter.readable.pipeTo(scMessageEncoder.writable);
684
+ scMessageEncoder.readable.pipeTo(tcpMessageInjector.writable);
685
+ tcpMessageInjector.readable.pipeTo(webSocketWritableStream);
686
+ const sc = new SecureChannelFacade(scContext, scTypeDecoder, scTypeEncoder);
369
687
  let connected = false;
370
688
  while (!connected) {
371
- console.log(`Connecting to OPC UA server at ${this.endpointUrl}...`);
372
- connected = await channel.connect();
689
+ this.logger.debug(`Connecting to OPC UA server at ${this.endpointUrl}...`);
690
+ await ws.connect();
691
+ this.logger.debug("WebSocket connection established, now establishing TCP connection...");
692
+ connected = await tcpConnectionHandler.connect(this.endpointUrl);
373
693
  if (!connected) {
374
- console.log("Connection failed, retrying in 2 seconds...");
694
+ this.logger.info("Connection failed, retrying in 2 seconds...");
375
695
  await new Promise((resolve) => setTimeout(resolve, 2e3));
376
696
  }
377
697
  }
378
- console.log("Connected to OPC UA server.");
379
- this.channel = new SecureChannel(channel, this.configuration);
380
- await this.channel.openSecureChannelRequest();
381
- const sessionHandler = new SessionHandler(this.channel, this.configuration);
698
+ this.logger.info("Connected to OPC UA server.");
699
+ this.logger.debug("Opening secure channel...");
700
+ await sc.openSecureChannel();
701
+ this.logger.debug("Secure channel established.");
702
+ this.logger.debug("Creating session...");
703
+ const sessionHandler = new SessionHandler(sc, this.configuration);
382
704
  this.session = await sessionHandler.createNewSession(this.identity);
705
+ this.logger.debug("Session created.");
706
+ this.logger.debug("Initializing services...");
707
+ this.attributeService = new AttributeService(this.session.getAuthToken(), sc);
708
+ this.methodService = new MethodService(this.session.getAuthToken(), sc);
383
709
  this.subscriptionHandler = new SubscriptionHandler(
384
- new SubscriptionService(this.session.getAuthToken(), this.channel),
385
- new MonitoredItemService(this.session.getAuthToken(), this.channel)
710
+ new SubscriptionService(this.session.getAuthToken(), sc),
711
+ new MonitoredItemService(this.session.getAuthToken(), sc)
386
712
  );
387
713
  }
388
714
  async disconnect() {
389
- console.log("Disconnecting from OPC UA server...");
390
- if (this.channel) {
391
- await this.channel.disconnect();
392
- }
715
+ this.logger.info("Disconnecting from OPC UA server...");
393
716
  }
394
717
  async read(ids) {
395
- const service = new AttributeService(this.getSession().getAuthToken(), this.channel);
396
- const result = await service.ReadValue(ids.map((i) => i.toNodeId()));
397
- return result.map((r) => new ReadValueResult(r.value, r.status));
718
+ const result = await this.attributeService?.ReadValue(ids);
719
+ return result?.map((r) => new ReadValueResult(r.value, r.status)) || [];
720
+ }
721
+ /**
722
+ * Method for calling a single method on the server.
723
+ * @param objectId - NodeId of the Object that owns the method.
724
+ * @param methodId - NodeId of the Method to invoke.
725
+ * @param inputArguments - Input argument Variants (default: empty).
726
+ * @returns The CallMethodResult for the invoked method.
727
+ */
728
+ async callMethod(objectId, methodId, inputArguments = []) {
729
+ const request = new CallMethodRequest();
730
+ request.objectId = objectId;
731
+ request.methodId = methodId;
732
+ request.inputArguments = inputArguments.map((arg) => Variant.newFrom(arg));
733
+ const responses = await this.methodService.call([request]);
734
+ const response = responses[0];
735
+ return new CallMethodResult(response.value, response.status);
398
736
  }
399
737
  async subscribe(ids, callback) {
400
738
  this.subscriptionHandler?.subscribe(ids, callback);
401
739
  }
402
740
  };
403
741
  var ConfigurationClient = class _ConfigurationClient extends Configuration {
404
- static getSimple(name, company) {
742
+ static getSimple(name, company, loggerFactory) {
743
+ if (!loggerFactory) {
744
+ loggerFactory = new LoggerFactory({
745
+ defaultLevel: "DEBUG",
746
+ //todo: use enum
747
+ categoryLevels: {
748
+ "transport.*": "TRACE",
749
+ "secureChannel.*": "TRACE"
750
+ }
751
+ });
752
+ }
405
753
  const applicationUri = `urn:${company}:${name}`;
406
754
  const productUri = `urn:${company}:${name}:product`;
407
755
  const encoder = new Encoder();
@@ -415,24 +763,26 @@ var ConfigurationClient = class _ConfigurationClient extends Configuration {
415
763
  });
416
764
  registerTypeDecoders(decoder);
417
765
  registerBinaryDecoders(decoder);
418
- return new _ConfigurationClient(name, applicationUri, name, productUri, encoder, decoder);
419
- }
420
- constructor(applicationName, applicationUri, productName, productUri, encoder, decoder) {
421
- super(applicationName, applicationUri, productName, productUri, encoder, decoder);
422
- }
423
- };
424
- var Id = class _Id {
425
- constructor(nodeId) {
426
- this.nodeId = nodeId;
427
- }
428
- static newId(namespace, identifier) {
429
- return new _Id(new NodeId(namespace, identifier));
430
- }
431
- toNodeId() {
432
- return this.nodeId;
766
+ return new _ConfigurationClient(
767
+ name,
768
+ applicationUri,
769
+ name,
770
+ productUri,
771
+ encoder,
772
+ decoder,
773
+ loggerFactory
774
+ );
433
775
  }
434
- toString() {
435
- return `${this.nodeId.namespace}:${this.nodeId.identifier}`;
776
+ constructor(applicationName, applicationUri, productName, productUri, encoder, decoder, loggerFactory) {
777
+ super(
778
+ applicationName,
779
+ applicationUri,
780
+ productName,
781
+ productUri,
782
+ encoder,
783
+ decoder,
784
+ loggerFactory
785
+ );
436
786
  }
437
787
  };
438
788
  var UserIdentity = class _UserIdentity {
@@ -478,6 +828,6 @@ var UserIdentity = class _UserIdentity {
478
828
  }
479
829
  };
480
830
 
481
- export { Client, ConfigurationClient, Id, UserIdentity };
831
+ export { Client, ConfigurationClient, UserIdentity };
482
832
  //# sourceMappingURL=index.js.map
483
833
  //# sourceMappingURL=index.js.map