opcjs-client 0.1.35-alpha → 0.1.37-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.d.cts CHANGED
@@ -108,6 +108,24 @@ declare class ReadValueResult {
108
108
  constructor(value: unknown, statusCode: number);
109
109
  }
110
110
 
111
+ /** Options for creating a subscription. All fields are optional; server will revise requested values. */
112
+ interface SubscriptionOptions {
113
+ /** Requested publishing interval in milliseconds. Default: 2000. */
114
+ requestedPublishingInterval?: number;
115
+ /** Requested lifetime count (number of publishing intervals before subscription times out). Default: 360000. */
116
+ requestedLifetimeCount?: number;
117
+ /** Requested max keep-alive count. Default: 60000. */
118
+ requestedMaxKeepAliveCount?: number;
119
+ /** Maximum number of notifications per publish response. 0 = no limit. Default: 200. */
120
+ maxNotificationsPerPublish?: number;
121
+ /** Subscription priority relative to other subscriptions. Default: 1. */
122
+ priority?: number;
123
+ /** Requested sampling interval in milliseconds. -1 = use subscription publishing interval. */
124
+ samplingInterval?: number;
125
+ /** Requested queue size for each monitored item. */
126
+ queueSize?: number;
127
+ }
128
+
111
129
  /** URI for the SecurityPolicy None profile. */
112
130
  declare const SECURITY_POLICY_NONE_URI = "http://opcfoundation.org/UA/SecurityPolicy#None";
113
131
  /**
@@ -338,7 +356,7 @@ declare class Client {
338
356
  subscribe(ids: NodeId[], callback: (data: {
339
357
  id: NodeId;
340
358
  value: unknown;
341
- }[]) => void): Promise<void>;
359
+ }[]) => void, options?: SubscriptionOptions): Promise<void>;
342
360
  constructor(endpointUrl: string, configuration: ConfigurationClient, identity: UserIdentity);
343
361
  }
344
362
 
@@ -358,4 +376,4 @@ declare class SessionInvalidError extends Error {
358
376
  constructor(statusCode: number);
359
377
  }
360
378
 
361
- export { BrowseNodeResult, type CallMethodArgument, CallMethodResult, Client, ConfigurationClient, SECURITY_POLICY_NONE_URI, type ScalarCallMethodArgument, type SecurityConfiguration, SessionInvalidError, type UnknownCertificatePolicy, UserIdentity };
379
+ export { BrowseNodeResult, type CallMethodArgument, CallMethodResult, Client, ConfigurationClient, SECURITY_POLICY_NONE_URI, type ScalarCallMethodArgument, type SecurityConfiguration, SessionInvalidError, type SubscriptionOptions, type UnknownCertificatePolicy, UserIdentity };
package/dist/index.d.ts CHANGED
@@ -108,6 +108,24 @@ declare class ReadValueResult {
108
108
  constructor(value: unknown, statusCode: number);
109
109
  }
110
110
 
111
+ /** Options for creating a subscription. All fields are optional; server will revise requested values. */
112
+ interface SubscriptionOptions {
113
+ /** Requested publishing interval in milliseconds. Default: 2000. */
114
+ requestedPublishingInterval?: number;
115
+ /** Requested lifetime count (number of publishing intervals before subscription times out). Default: 360000. */
116
+ requestedLifetimeCount?: number;
117
+ /** Requested max keep-alive count. Default: 60000. */
118
+ requestedMaxKeepAliveCount?: number;
119
+ /** Maximum number of notifications per publish response. 0 = no limit. Default: 200. */
120
+ maxNotificationsPerPublish?: number;
121
+ /** Subscription priority relative to other subscriptions. Default: 1. */
122
+ priority?: number;
123
+ /** Requested sampling interval in milliseconds. -1 = use subscription publishing interval. */
124
+ samplingInterval?: number;
125
+ /** Requested queue size for each monitored item. */
126
+ queueSize?: number;
127
+ }
128
+
111
129
  /** URI for the SecurityPolicy None profile. */
112
130
  declare const SECURITY_POLICY_NONE_URI = "http://opcfoundation.org/UA/SecurityPolicy#None";
113
131
  /**
@@ -338,7 +356,7 @@ declare class Client {
338
356
  subscribe(ids: NodeId[], callback: (data: {
339
357
  id: NodeId;
340
358
  value: unknown;
341
- }[]) => void): Promise<void>;
359
+ }[]) => void, options?: SubscriptionOptions): Promise<void>;
342
360
  constructor(endpointUrl: string, configuration: ConfigurationClient, identity: UserIdentity);
343
361
  }
344
362
 
@@ -358,4 +376,4 @@ declare class SessionInvalidError extends Error {
358
376
  constructor(statusCode: number);
359
377
  }
360
378
 
361
- export { BrowseNodeResult, type CallMethodArgument, CallMethodResult, Client, ConfigurationClient, SECURITY_POLICY_NONE_URI, type ScalarCallMethodArgument, type SecurityConfiguration, SessionInvalidError, type UnknownCertificatePolicy, UserIdentity };
379
+ export { BrowseNodeResult, type CallMethodArgument, CallMethodResult, Client, ConfigurationClient, SECURITY_POLICY_NONE_URI, type ScalarCallMethodArgument, type SecurityConfiguration, SessionInvalidError, type SubscriptionOptions, type UnknownCertificatePolicy, UserIdentity };
package/dist/index.js CHANGED
@@ -160,7 +160,7 @@ var SessionService = class _SessionService extends ServiceBase {
160
160
  }
161
161
  };
162
162
 
163
- // src/issuerConfiguration.ts
163
+ // src/configuration/issuerConfiguration.ts
164
164
  var IssuerConfiguration = class _IssuerConfiguration {
165
165
  constructor(resourceId, authorityUrl, authorityProfileUri, tokenEndpoint, authorizationEndpoint, requestTypes, scopes) {
166
166
  this.resourceId = resourceId;
@@ -359,7 +359,7 @@ var ReadValueResult = class {
359
359
  }
360
360
  };
361
361
 
362
- // src/subscriptionHandlerEntry.ts
362
+ // src/subscription/subscriptionHandlerEntry.ts
363
363
  var SubscriptionHandlerEntry = class {
364
364
  constructor(subscriptionId, handle, id, callback) {
365
365
  this.subscriptionId = subscriptionId;
@@ -369,7 +369,7 @@ var SubscriptionHandlerEntry = class {
369
369
  }
370
370
  };
371
371
 
372
- // src/subscriptionHandler.ts
372
+ // src/subscription/subscriptionHandler.ts
373
373
  var NODE_ID_DATA_CHANGE_NOTIFICATION = 811;
374
374
  var NODE_ID_STATUS_CHANGE_NOTIFICATION = 818;
375
375
  var SubscriptionHandler = class {
@@ -385,18 +385,18 @@ var SubscriptionHandler = class {
385
385
  hasActiveSubscription() {
386
386
  return this.isRunning && this.entries.length > 0;
387
387
  }
388
- async subscribe(ids, callback) {
388
+ async subscribe(ids, callback, options) {
389
389
  if (this.entries.length > 0) {
390
390
  throw new Error("Subscribing more than once is not implemented");
391
391
  }
392
- const subscriptionId = await this.subscriptionService.createSubscription();
392
+ const subscriptionId = await this.subscriptionService.createSubscription(options);
393
393
  const items = [];
394
394
  for (const id of ids) {
395
395
  const entry = new SubscriptionHandlerEntry(subscriptionId, this.nextHandle++, id, callback);
396
396
  this.entries.push(entry);
397
397
  items.push({ id, handle: entry.handle });
398
398
  }
399
- await this.monitoredItemService.createMonitoredItems(subscriptionId, items);
399
+ await this.monitoredItemService.createMonitoredItems(subscriptionId, items, options);
400
400
  this.isRunning = true;
401
401
  void this.publishLoop([]);
402
402
  }
@@ -510,10 +510,10 @@ var MonitoredItemService = class extends ServiceBase {
510
510
  * Creates monitored items within a subscription (OPC UA Part 4, Section 5.13.2).
511
511
  * @param subscriptionId - ID of the subscription to add monitored items to.
512
512
  * @param ids - Array of NodeIds and client handles identifying the items to monitor.
513
- * @param samplingInterval - Requested sampling interval in milliseconds. -1 = use subscription publishing interval.
514
- * @param queueSize - Requested queue size for each monitored item.
513
+ * @param options - Monitoring options (samplingInterval, queueSize).
515
514
  */
516
- async createMonitoredItems(subscriptionId, ids, samplingInterval = 1e3, queueSize = 100) {
515
+ async createMonitoredItems(subscriptionId, ids, options = {}) {
516
+ const { samplingInterval = 1e3, queueSize = 100 } = options;
517
517
  const items = ids.map((ni) => {
518
518
  const readValueId = new ReadValueId();
519
519
  readValueId.nodeId = ni.id;
@@ -577,7 +577,7 @@ var MethodService = class extends ServiceBase {
577
577
  }
578
578
  };
579
579
 
580
- // src/callMethodResult.ts
580
+ // src/method/callMethodResult.ts
581
581
  var CallMethodResult = class {
582
582
  constructor(values, statusCode) {
583
583
  this.values = values;
@@ -986,8 +986,8 @@ var Client = class {
986
986
  }
987
987
  return results;
988
988
  }
989
- async subscribe(ids, callback) {
990
- this.subscriptionHandler?.subscribe(ids, callback);
989
+ async subscribe(ids, callback, options) {
990
+ this.subscriptionHandler?.subscribe(ids, callback, options);
991
991
  }
992
992
  };
993
993
  var ConfigurationClient = class _ConfigurationClient extends Configuration {