@node-i3x/opcua-connector 0.5.3 → 0.5.4

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.ts CHANGED
@@ -32,13 +32,30 @@ interface OpcUaClientOptions {
32
32
  password?: string;
33
33
  }
34
34
 
35
+ /** OPC UA session-level traffic statistics */
36
+ interface OpcuaStats {
37
+ transactionsPerformed: number;
38
+ bytesRead: number;
39
+ bytesWritten: number;
40
+ services: {
41
+ browse: number;
42
+ read: number;
43
+ write: number;
44
+ translate: number;
45
+ subscribe: number;
46
+ call: number;
47
+ readHistory: number;
48
+ };
49
+ }
35
50
  declare class OpcUaClient {
36
51
  private readonly logger;
37
52
  private _client;
38
53
  private _session;
39
54
  private _namespaceArray;
55
+ private _serviceCounters;
40
56
  private readonly _opts;
41
57
  constructor(opts: OpcUaClientOptions, logger: ILogger);
58
+ getStats(): OpcuaStats;
42
59
  connect(): Promise<void>;
43
60
  disconnect(): Promise<void>;
44
61
  isConnected(): boolean;
@@ -138,4 +155,4 @@ declare function qualifiedNameToNsu(browseName: QualifiedName | null | undefined
138
155
  */
139
156
  declare function wrapSessionIfOptimized(session: ClientSession, logger: ILogger): Promise<ClientSession>;
140
157
 
141
- export { OpcUaClient, type OpcUaClientOptions, OpcUaDataSourceAdapter, qualifiedNameToNsu, wrapSessionIfOptimized };
158
+ export { OpcUaClient, type OpcUaClientOptions, OpcUaDataSourceAdapter, type OpcuaStats, qualifiedNameToNsu, wrapSessionIfOptimized };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var _=class{constructor(e,n){this.client=e;this._logger=n}client;_logger;async connect(){await this.client.connect()}async disconnect(){await this.client.disconnect()}isConnected(){return this.client.isConnected()}async browseTree(){return this.client.browseTree()}async getNamespaces(){return this.client.getNamespaces()}async getObjectTypes(){return this.client.getObjectTypes()}async readValue(e){return this.client.readValue(e)}async readValues(e){return this.client.readValues(e)}async writeValue(e,n){return this.client.writeValue(e,n)}async readHistory(e,n,s){return this.client.readHistory(e,n,s)}async createMonitoredSubscription(e){return this.client.createMonitoredSubscription(e)}};import{AttributeIds as S,BrowseDirection as U,browseAll as k,coerceNodeId as I,DataType as p,MessageSecurityMode as V,NodeClass as g,OPCUAClient as H,resolveNodeId as O,StatusCodes as F,TimestampsToReturn as z,UserTokenType as L,Variant as B}from"node-opcua";import{NodeClass as w,StatusCodes as $}from"node-opcua";var E={[w.Object]:"Object",[w.Variable]:"Variable",[w.Method]:"Method",[w.ObjectType]:"ObjectType",[w.VariableType]:"VariableType",[w.ReferenceType]:"ReferenceType",[w.DataType]:"DataType",[w.View]:"View"};function A(a,e){if(!a?.name)return"";let n=a.namespaceIndex??0;return`nsu=${e[n]??`ns=${n}`}:${a.name}`}function j(a,e,n){let s=a.nodeClass??w.Unspecified,i=A(a.browseName,n),l="",d=i.match(/^nsu=(.+):([^:]+)$/);if(d)l=d[1];else{let c=a.browseName?.namespaceIndex??0;l=n[c]??""}return{sourceNodeId:a.nodeId.toString(),parentSourceNodeId:e,browseName:a.browseName?.toString()??"",nsuQualifiedName:i,displayName:a.displayName?.text??a.browseName?.toString()??"",nodeClass:E[s]??"Unknown",typeDefinition:a.typeDefinition?a.typeDefinition.toString():null,namespaceUri:l,eventNotifier:a.nodeClass===w.Object?(a.eventNotifier??0)!==0:!1}}function D(a){let e=a.statusCode?.equals($.Good)??!1;return{value:a.value?.value??null,quality:e?"Good":"Bad",timestamp:a.sourceTimestamp?.toISOString()??a.serverTimestamp?.toISOString()??new Date().toISOString(),statusCode:a.statusCode?.value}}function v(a){return{value:a.value?.value??null,quality:a.statusCode?.equals($.Good)?"Good":"Bad",timestamp:a.sourceTimestamp?.toISOString()??a.serverTimestamp?.toISOString()??new Date().toISOString()}}async function P(a,e){try{let{ClientSessionOptimized:n}=await import("@sterfive/opcua-optimized-client"),s=new n(a);return e.info("\u2713 @sterfive/opcua-optimized-client activated \u2014 auto-batching, limit-splitting, and coalescing enabled"),s}catch{return e.info("Standard node-opcua client mode. Install @sterfive/opcua-optimized-client for automatic batching and enhanced performance."),a}}var G={None:V.None,Sign:V.Sign,SignAndEncrypt:V.SignAndEncrypt},x=class{constructor(e,n){this.logger=n;this._opts={endpointUrl:e.endpointUrl,securityMode:e.securityMode??"None",applicationName:e.applicationName??"node-i3x",optimizedClient:e.optimizedClient??"auto",browseStrategy:e.browseStrategy??"parallel",browseFilter:e.browseFilter??"application-only",username:e.username,password:e.password}}logger;_client=null;_session=null;_namespaceArray=[];_opts;async connect(){let e=G[this._opts.securityMode]??V.None;this._client=H.create({applicationName:this._opts.applicationName,securityMode:e,connectionStrategy:{initialDelay:1e3,maxDelay:3e4,maxRetry:1/0},keepSessionAlive:!0,endpointMustExist:!1}),this._client.on("backoff",(l,d)=>{this.logger.warn(`Connection backoff #${l}, retrying in ${d}ms`)}),this._client.on("connection_reestablished",()=>{this.logger.info("OPC UA connection re-established")}),this.logger.info(`Connecting to ${this._opts.endpointUrl}...`),await this._client.connect(this._opts.endpointUrl);let n=this._opts.username&&this._opts.password?{type:L.UserName,userName:this._opts.username,password:this._opts.password}:void 0,s=await this._client.createSession(n);this._opts.optimizedClient!=="disabled"&&(s=await P(s,this.logger)),this._session=s;let i=await s.read({nodeId:I("i=2255"),attributeId:S.Value});this._namespaceArray=i.value?.value??[],this.logger.info("OPC UA session created")}async disconnect(){if(this._session){try{await this._session.close()}catch{}this._session=null}if(this._client){try{await this._client.disconnect()}catch{}this._client=null}this.logger.info("OPC UA disconnected")}isConnected(){return this._session!==null&&!this._session.isReconnecting}get session(){if(!this._session)throw new Error("OPC UA session not connected");return this._session}_makeBrowseDescriptions(e,n=O("HierarchicalReferences")){return e.map(s=>({nodeId:I(s),browseDirection:U.Forward,includeSubtypes:!0,referenceTypeId:n,resultMask:63,requestedMaxReferencesPerNode:0}))}async _browseSingleNode(e,n){let s=this._makeBrowseDescriptions([e],n)[0],i=await this.session.browse(s),l=[...i.references??[]],d=1,c=i.continuationPoint;for(;c;){let t=await this.session.browseNext(c,!1);d++,l.push(...t.references??[]),c=t.continuationPoint}return{refs:l,txCount:d}}async _bfsBrowse(e,n,s,i){let l=performance.now(),d=[],c=new Set,t=0,o=[{nodeId:e,parentId:null}],m=this._opts.browseStrategy!=="browseAll",u=new Set;for(;o.length>0;){let f=o.filter(y=>!c.has(y.nodeId));for(let y of f)c.add(y.nodeId);if(f.length===0)break;let r;if(m)r=await Promise.all(f.map(y=>this._browseSingleNode(y.nodeId,i)));else{let y=this._makeBrowseDescriptions(f.map(T=>T.nodeId),i),N=await k(this.session,y);t+=1,r=N.map(T=>({refs:T.references??[],txCount:0}))}let h=[],b=new Set;for(let y=0;y<f.length;y++){let N=f[y],{refs:T,txCount:q}=r[y];t+=q;for(let M of T){let C=M.nodeId.toString();if(!c.has(C)){if(!u.has(C)){u.add(C);let R=n(M,N.nodeId);R!==null&&d.push(R)}(!s||s(M,N.nodeId))&&(b.has(C)||(b.add(C),h.push({nodeId:C,parentId:N.nodeId})))}}}o=h}return{items:d,txCount:t,ms:performance.now()-l}}async browseTree(){let e=O("ObjectsFolder").toString(),n=this._opts.browseFilter??"application-only",{items:s,txCount:i,ms:l}=await this._bfsBrowse(e,(c,t)=>j(c,t===e?null:t,this._namespaceArray),(c,t)=>{if(c.nodeClass!==g.Object&&c.nodeClass!==g.Variable)return!1;if(t===e){if(n==="all")return!0;if(n==="application-only")return(c.browseName?.namespaceIndex??0)!==0;let o=c.nodeId.toString(),m=c.browseName?.name??"";return n.some(u=>u===o||u===m)}return!0}),d=this._opts.browseStrategy!=="browseAll"?"parallel":"browseAll";return this.logger.info(`Browse tree: ${s.length} nodes in ${l.toFixed(0)}ms (strategy=${d}, transactions=${i})`),s}async getObjectTypes(){let{items:e,txCount:n,ms:s}=await this._bfsBrowse(O("ObjectTypesFolder").toString(),(r,h)=>{if(r.nodeClass!==g.ObjectType)return null;let b=r.browseName?.namespaceIndex??0,y=this._namespaceArray[b]??"";return{sourceNodeId:r.nodeId.toString(),parentSourceNodeId:h,browseName:r.browseName?.toString()??"",displayName:r.displayName?.text??"",namespaceUri:y}},r=>r.nodeClass===g.ObjectType),i=this._opts.browseStrategy!=="browseAll"?"parallel":"browseAll";this.logger.info(`Browse object types: ${e.length} types in ${s.toFixed(0)}ms (strategy=${i}, transactions=${n})`);let l=performance.now(),d=new Set,c=[],t=[];for(let r of e)d.has(r.sourceNodeId)||(d.add(r.sourceNodeId),r.sourceNodeId.startsWith("ns=0;")?c.push(r):t.push(r));let o=200,m=[];for(let r=0;r<t.length;r+=o){let h=t.slice(r,r+o),b=await Promise.all(h.map(y=>this._browseTypeMembers(y.sourceNodeId).then(N=>({...y,members:N}),()=>y)));m.push(...b),t.length>o&&this.logger.info(`Enriching types: ${Math.min(r+o,t.length)}/${t.length} done`)}let u=[...c,...m],f=performance.now()-l;return this.logger.info(`Enriched ${t.length} types with members in ${f.toFixed(0)}ms`),u}async _browseTypeMembers(e){let{refs:n}=await this._browseSingleNode(e),s=[],i=[];for(let t of n)t.nodeClass!==g.Variable&&t.nodeClass!==g.Object&&t.nodeClass!==g.Method||t.nodeClass===g.Variable&&i.push(t);let l=new Map;if(i.length>0){let t=i.map(o=>({nodeId:o.nodeId,attributeId:S.DataType}));try{let o=await this.session.read(t),m=Array.isArray(o)?o:[o];for(let u=0;u<i.length;u++){let f=i[u].nodeId.toString(),r=m[u]?.value?.value;l.set(f,r?r.toString():null)}}catch{}}let d=new Map,c=n.filter(t=>t.nodeClass===g.Variable||t.nodeClass===g.Object||t.nodeClass===g.Method);if(c.length>0){let t=c.map(o=>({nodeId:o.nodeId,browseDirection:U.Forward,includeSubtypes:!0,referenceTypeId:O("HasModellingRule"),resultMask:63,requestedMaxReferencesPerNode:0}));try{let o=await k(this.session,t);for(let m=0;m<c.length;m++){let u=c[m].nodeId.toString(),f=o[m]?.references?.[0];d.set(u,f?.displayName?.text??null)}}catch{}}for(let t of c){let o=t.nodeId.toString();s.push({browseName:t.browseName?.name??t.browseName?.toString()??"",displayName:t.displayName?.text??"",nodeClass:t.nodeClass===g.Variable?"Variable":t.nodeClass===g.Object?"Object":"Method",dataType:l.get(o)??null,modellingRule:d.get(o)??null})}return s}async getNamespaces(){return this._namespaceArray.map((e,n)=>({uri:e,displayName:e.split("/").pop()??`ns${n}`}))}async readValue(e){let n=await this.session.read({nodeId:I(e),attributeId:S.Value});return D(n)}async readValues(e){if(e.length===0)return[];let n=e.map(l=>({nodeId:I(l),attributeId:S.Value})),s=await this.session.read(n);return(Array.isArray(s)?s:[s]).map(D)}async writeValue(e,n){let s=I(e),i=await this.session.read([{nodeId:s,attributeId:S.DataType},{nodeId:s,attributeId:S.Value}]),l=Array.isArray(i)?i:[i],d=l[0]?.value?.value,c=l[1],t=p.Null;if(d){let r=typeof d=="object"?d.value??0:Number(d);r>=1&&r<=25?t=r:c?.value?.value!==void 0&&(t=c.value.dataType??p.Null)}let o=n;try{o=this._coerceToDataType(n,t)}catch(r){let h=`Write coercion failed for ${e}: targetDataType=${p[t]}(${t}) jsType=${typeof n} jsValue=${JSON.stringify(n)} error=${r}`;throw this.logger.warn(h),new Error(h)}let m={nodeId:s,attributeId:S.Value,value:{value:new B({dataType:t!==p.Null?t:this._inferDataType(o),value:o})}};this.logger.debug(`writeValue: nodeId=${e} targetDataType=${p[t]} jsType=${typeof n} \u2192 coerced=${JSON.stringify(o)}`);let u=await this.session.write(m),f=Array.isArray(u)?u[0]:u;if(f&&!f.equals(F.Good)){let r=`Write failed: ${f.toString()} | nodeId=${e} targetDataType=${p[t]}(${t}) inputValue=${JSON.stringify(n)} (${typeof n}) coercedValue=${JSON.stringify(o)} (${typeof o})`;throw this.logger.warn(r),new Error(r)}}_coerceToDataType(e,n){switch(n){case p.Boolean:return typeof e=="boolean"?e:typeof e=="number"?e!==0:typeof e=="string"?e.toLowerCase()==="true"||e==="1":!!e;case p.SByte:case p.Byte:case p.Int16:case p.UInt16:case p.Int32:case p.UInt32:return Math.trunc(Number(e));case p.Int64:case p.UInt64:return Array.isArray(e)?e:[0,Math.trunc(Number(e))];case p.Float:case p.Double:return Number(e);case p.String:return String(e);case p.DateTime:return e instanceof Date?e:typeof e=="string"||typeof e=="number"?new Date(e):e;case p.ByteString:return Buffer.isBuffer(e)?e:typeof e=="string"?Buffer.from(e,"base64"):e;case p.Null:default:return e}}_inferDataType(e){return typeof e=="number"?p.Double:typeof e=="boolean"?p.Boolean:typeof e=="string"?p.String:e instanceof Date?p.DateTime:p.Null}async readHistory(e,n,s){let l=await this.session.readHistoryValue(I(e),n,s);return(l.historyData?l.historyData?.dataValues??[]:[]).map(v)}async callMethod(e,n,s){let i={objectId:I(e),methodId:I(n),inputArguments:s.map(d=>new B({dataType:p.Null,value:d}))};return(await this.session.call(i)).outputArguments??null}async createMonitoredSubscription(e){let n=await this.session.createSubscription2({requestedPublishingInterval:e.publishingIntervalMs,requestedLifetimeCount:100,requestedMaxKeepAliveCount:10,maxNotificationsPerPublish:0,publishingEnabled:!0,priority:10}),s=null,i=new Map,l=`opcua-sub-${Date.now()}`,d=this.logger;return d.info(`OPC UA CreateSubscription id=${l} publishingInterval=${e.publishingIntervalMs}ms`),{id:l,async addItems(t){let o=t.filter(u=>!i.has(u));if(o.length===0)return;let m=await Promise.all(o.map(u=>n.monitor({nodeId:I(u),attributeId:S.Value},{samplingInterval:e.publishingIntervalMs,discardOldest:!0,queueSize:10},z.Both)));for(let u=0;u<o.length;u++){let f=o[u],r=m[u];r.on("changed",h=>{if(s){let b=D(h);s(f,b.value,b.quality,b.timestamp)}}),i.set(f,r)}d.info(`OPC UA CreateMonitoredItems: ${o.length} items added (total=${i.size})`)},async removeItems(t){let o=t.map(m=>({id:m,item:i.get(m)})).filter(m=>m.item!=null);await Promise.all(o.map(({id:m,item:u})=>(i.delete(m),u.terminate().catch(()=>{}))))},onDataChange(t){s=t},async close(){try{await n.terminate()}catch{}i.clear()}}}};export{x as OpcUaClient,_ as OpcUaDataSourceAdapter,A as qualifiedNameToNsu,P as wrapSessionIfOptimized};
1
+ var M=class{constructor(e,n){this.client=e;this._logger=n}client;_logger;async connect(){await this.client.connect()}async disconnect(){await this.client.disconnect()}isConnected(){return this.client.isConnected()}async browseTree(){return this.client.browseTree()}async getNamespaces(){return this.client.getNamespaces()}async getObjectTypes(){return this.client.getObjectTypes()}async readValue(e){return this.client.readValue(e)}async readValues(e){return this.client.readValues(e)}async writeValue(e,n){return this.client.writeValue(e,n)}async readHistory(e,n,s){return this.client.readHistory(e,n,s)}async createMonitoredSubscription(e){return this.client.createMonitoredSubscription(e)}};import{AttributeIds as S,BrowseDirection as U,browseAll as k,coerceNodeId as I,DataType as p,MessageSecurityMode as _,NodeClass as g,OPCUAClient as E,resolveNodeId as O,StatusCodes as F,TimestampsToReturn as z,UserTokenType as L,Variant as B}from"node-opcua";import{NodeClass as w,StatusCodes as R}from"node-opcua";var H={[w.Object]:"Object",[w.Variable]:"Variable",[w.Method]:"Method",[w.ObjectType]:"ObjectType",[w.VariableType]:"VariableType",[w.ReferenceType]:"ReferenceType",[w.DataType]:"DataType",[w.View]:"View"};function $(a,e){if(!a?.name)return"";let n=a.namespaceIndex??0;return`nsu=${e[n]??`ns=${n}`}:${a.name}`}function A(a,e,n){let s=a.nodeClass??w.Unspecified,i=$(a.browseName,n),l="",u=i.match(/^nsu=(.+):([^:]+)$/);if(u)l=u[1];else{let c=a.browseName?.namespaceIndex??0;l=n[c]??""}return{sourceNodeId:a.nodeId.toString(),parentSourceNodeId:e,browseName:a.browseName?.toString()??"",nsuQualifiedName:i,displayName:a.displayName?.text??a.browseName?.toString()??"",nodeClass:H[s]??"Unknown",typeDefinition:a.typeDefinition?a.typeDefinition.toString():null,namespaceUri:l,eventNotifier:a.nodeClass===w.Object?(a.eventNotifier??0)!==0:!1}}function D(a){let e=a.statusCode?.equals(R.Good)??!1;return{value:a.value?.value??null,quality:e?"Good":"Bad",timestamp:a.sourceTimestamp?.toISOString()??a.serverTimestamp?.toISOString()??new Date().toISOString(),statusCode:a.statusCode?.value}}function j(a){return{value:a.value?.value??null,quality:a.statusCode?.equals(R.Good)?"Good":"Bad",timestamp:a.sourceTimestamp?.toISOString()??a.serverTimestamp?.toISOString()??new Date().toISOString()}}async function P(a,e){try{let{ClientSessionOptimized:n}=await import("@sterfive/opcua-optimized-client"),s=new n(a);return e.info("\u2713 @sterfive/opcua-optimized-client activated \u2014 auto-batching, limit-splitting, and coalescing enabled"),s}catch{return e.info("Standard node-opcua client mode. Install @sterfive/opcua-optimized-client for automatic batching and enhanced performance."),a}}var W={None:_.None,Sign:_.Sign,SignAndEncrypt:_.SignAndEncrypt},x=class{constructor(e,n){this.logger=n;this._opts={endpointUrl:e.endpointUrl,securityMode:e.securityMode??"None",applicationName:e.applicationName??"node-i3x",optimizedClient:e.optimizedClient??"auto",browseStrategy:e.browseStrategy??"parallel",browseFilter:e.browseFilter??"application-only",username:e.username,password:e.password}}logger;_client=null;_session=null;_namespaceArray=[];_serviceCounters={browse:0,read:0,write:0,translate:0,subscribe:0,call:0,readHistory:0};_opts;getStats(){return{transactionsPerformed:this._client?.transactionsPerformed??0,bytesRead:this._client?.bytesRead??0,bytesWritten:this._client?.bytesWritten??0,services:{...this._serviceCounters}}}async connect(){let e=W[this._opts.securityMode]??_.None;this._client=E.create({applicationName:this._opts.applicationName,securityMode:e,connectionStrategy:{initialDelay:1e3,maxDelay:3e4,maxRetry:1/0},keepSessionAlive:!0,endpointMustExist:!1}),this._client.on("backoff",(l,u)=>{this.logger.warn(`Connection backoff #${l}, retrying in ${u}ms`)}),this._client.on("connection_reestablished",()=>{this.logger.info("OPC UA connection re-established")}),this.logger.info(`Connecting to ${this._opts.endpointUrl}...`),await this._client.connect(this._opts.endpointUrl);let n=this._opts.username&&this._opts.password?{type:L.UserName,userName:this._opts.username,password:this._opts.password}:void 0,s=await this._client.createSession(n);this._opts.optimizedClient!=="disabled"&&(s=await P(s,this.logger)),this._session=s;let i=await s.read({nodeId:I("i=2255"),attributeId:S.Value});this._namespaceArray=i.value?.value??[],this.logger.info("OPC UA session created")}async disconnect(){if(this._session){try{await this._session.close()}catch{}this._session=null}if(this._client){try{await this._client.disconnect()}catch{}this._client=null}this.logger.info("OPC UA disconnected")}isConnected(){return this._session!==null&&!this._session.isReconnecting}get session(){if(!this._session)throw new Error("OPC UA session not connected");return this._session}_makeBrowseDescriptions(e,n=O("HierarchicalReferences")){return e.map(s=>({nodeId:I(s),browseDirection:U.Forward,includeSubtypes:!0,referenceTypeId:n,resultMask:63,requestedMaxReferencesPerNode:0}))}async _browseSingleNode(e,n){let s=this._makeBrowseDescriptions([e],n)[0],i=await this.session.browse(s),l=[...i.references??[]],u=1,c=i.continuationPoint;for(;c;){let t=await this.session.browseNext(c,!1);u++,l.push(...t.references??[]),c=t.continuationPoint}return{refs:l,txCount:u}}async _bfsBrowse(e,n,s,i){let l=performance.now(),u=[],c=new Set,t=0,r=[{nodeId:e,parentId:null}],m=this._opts.browseStrategy!=="browseAll",d=new Set;for(;r.length>0;){let y=r.filter(f=>!c.has(f.nodeId));for(let f of y)c.add(f.nodeId);if(y.length===0)break;let o;if(m)o=await Promise.all(y.map(f=>this._browseSingleNode(f.nodeId,i)));else{let f=this._makeBrowseDescriptions(y.map(T=>T.nodeId),i),C=await k(this.session,f);t+=1,o=C.map(T=>({refs:T.references??[],txCount:0}))}let b=[],h=new Set;for(let f=0;f<y.length;f++){let C=y[f],{refs:T,txCount:q}=o[f];t+=q;for(let V of T){let N=V.nodeId.toString();if(!c.has(N)){if(!d.has(N)){d.add(N);let v=n(V,C.nodeId);v!==null&&u.push(v)}(!s||s(V,C.nodeId))&&(h.has(N)||(h.add(N),b.push({nodeId:N,parentId:C.nodeId})))}}}r=b}return{items:u,txCount:t,ms:performance.now()-l}}async browseTree(){this._serviceCounters.browse++;let e=O("ObjectsFolder").toString(),n=this._opts.browseFilter??"application-only",{items:s,txCount:i,ms:l}=await this._bfsBrowse(e,(c,t)=>A(c,t===e?null:t,this._namespaceArray),(c,t)=>{if(c.nodeClass!==g.Object&&c.nodeClass!==g.Variable)return!1;if(t===e){if(n==="all")return!0;if(n==="application-only")return(c.browseName?.namespaceIndex??0)!==0;let r=c.nodeId.toString(),m=c.browseName?.name??"";return n.some(d=>d===r||d===m)}return!0}),u=this._opts.browseStrategy!=="browseAll"?"parallel":"browseAll";return this.logger.info(`Browse tree: ${s.length} nodes in ${l.toFixed(0)}ms (strategy=${u}, transactions=${i})`),s}async getObjectTypes(){this._serviceCounters.browse++;let{items:e,txCount:n,ms:s}=await this._bfsBrowse(O("ObjectTypesFolder").toString(),(o,b)=>{if(o.nodeClass!==g.ObjectType)return null;let h=o.browseName?.namespaceIndex??0,f=this._namespaceArray[h]??"";return{sourceNodeId:o.nodeId.toString(),parentSourceNodeId:b,browseName:o.browseName?.toString()??"",displayName:o.displayName?.text??"",namespaceUri:f}},o=>o.nodeClass===g.ObjectType),i=this._opts.browseStrategy!=="browseAll"?"parallel":"browseAll";this.logger.info(`Browse object types: ${e.length} types in ${s.toFixed(0)}ms (strategy=${i}, transactions=${n})`);let l=performance.now(),u=new Set,c=[],t=[];for(let o of e)u.has(o.sourceNodeId)||(u.add(o.sourceNodeId),o.sourceNodeId.startsWith("ns=0;")?c.push(o):t.push(o));let r=200,m=[];for(let o=0;o<t.length;o+=r){let b=t.slice(o,o+r),h=await Promise.all(b.map(f=>this._browseTypeMembers(f.sourceNodeId).then(C=>({...f,members:C}),()=>f)));m.push(...h),t.length>r&&this.logger.info(`Enriching types: ${Math.min(o+r,t.length)}/${t.length} done`)}let d=[...c,...m],y=performance.now()-l;return this.logger.info(`Enriched ${t.length} types with members in ${y.toFixed(0)}ms`),d}async _browseTypeMembers(e){let{refs:n}=await this._browseSingleNode(e),s=[],i=[];for(let t of n)t.nodeClass!==g.Variable&&t.nodeClass!==g.Object&&t.nodeClass!==g.Method||t.nodeClass===g.Variable&&i.push(t);let l=new Map;if(i.length>0){let t=i.map(r=>({nodeId:r.nodeId,attributeId:S.DataType}));try{let r=await this.session.read(t),m=Array.isArray(r)?r:[r];for(let d=0;d<i.length;d++){let y=i[d].nodeId.toString(),o=m[d]?.value?.value;l.set(y,o?o.toString():null)}}catch{}}let u=new Map,c=n.filter(t=>t.nodeClass===g.Variable||t.nodeClass===g.Object||t.nodeClass===g.Method);if(c.length>0){let t=c.map(r=>({nodeId:r.nodeId,browseDirection:U.Forward,includeSubtypes:!0,referenceTypeId:O("HasModellingRule"),resultMask:63,requestedMaxReferencesPerNode:0}));try{let r=await k(this.session,t);for(let m=0;m<c.length;m++){let d=c[m].nodeId.toString(),y=r[m]?.references?.[0];u.set(d,y?.displayName?.text??null)}}catch{}}for(let t of c){let r=t.nodeId.toString();s.push({browseName:t.browseName?.name??t.browseName?.toString()??"",displayName:t.displayName?.text??"",nodeClass:t.nodeClass===g.Variable?"Variable":t.nodeClass===g.Object?"Object":"Method",dataType:l.get(r)??null,modellingRule:u.get(r)??null})}return s}async getNamespaces(){return this._namespaceArray.map((e,n)=>({uri:e,displayName:e.split("/").pop()??`ns${n}`}))}async readValue(e){this._serviceCounters.read++;let n=await this.session.read({nodeId:I(e),attributeId:S.Value});return D(n)}async readValues(e){if(this._serviceCounters.read++,e.length===0)return[];let n=e.map(l=>({nodeId:I(l),attributeId:S.Value})),s=await this.session.read(n);return(Array.isArray(s)?s:[s]).map(D)}async writeValue(e,n){this._serviceCounters.write++;let s=I(e),i=await this.session.read([{nodeId:s,attributeId:S.DataType},{nodeId:s,attributeId:S.Value}]),l=Array.isArray(i)?i:[i],u=l[0]?.value?.value,c=l[1],t=p.Null;if(u){let o=typeof u=="object"?u.value??0:Number(u);o>=1&&o<=25?t=o:c?.value?.value!==void 0&&(t=c.value.dataType??p.Null)}let r=n;try{r=this._coerceToDataType(n,t)}catch(o){let b=`Write coercion failed for ${e}: targetDataType=${p[t]}(${t}) jsType=${typeof n} jsValue=${JSON.stringify(n)} error=${o}`;throw this.logger.warn(b),new Error(b)}let m={nodeId:s,attributeId:S.Value,value:{value:new B({dataType:t!==p.Null?t:this._inferDataType(r),value:r})}};this.logger.debug(`writeValue: nodeId=${e} targetDataType=${p[t]} jsType=${typeof n} \u2192 coerced=${JSON.stringify(r)}`);let d=await this.session.write(m),y=Array.isArray(d)?d[0]:d;if(y&&!y.equals(F.Good)){let o=`Write failed: ${y.toString()} | nodeId=${e} targetDataType=${p[t]}(${t}) inputValue=${JSON.stringify(n)} (${typeof n}) coercedValue=${JSON.stringify(r)} (${typeof r})`;throw this.logger.warn(o),new Error(o)}}_coerceToDataType(e,n){switch(n){case p.Boolean:return typeof e=="boolean"?e:typeof e=="number"?e!==0:typeof e=="string"?e.toLowerCase()==="true"||e==="1":!!e;case p.SByte:case p.Byte:case p.Int16:case p.UInt16:case p.Int32:case p.UInt32:return Math.trunc(Number(e));case p.Int64:case p.UInt64:return Array.isArray(e)?e:[0,Math.trunc(Number(e))];case p.Float:case p.Double:return Number(e);case p.String:return String(e);case p.DateTime:return e instanceof Date?e:typeof e=="string"||typeof e=="number"?new Date(e):e;case p.ByteString:return Buffer.isBuffer(e)?e:typeof e=="string"?Buffer.from(e,"base64"):e;case p.Null:default:return e}}_inferDataType(e){return typeof e=="number"?p.Double:typeof e=="boolean"?p.Boolean:typeof e=="string"?p.String:e instanceof Date?p.DateTime:p.Null}async readHistory(e,n,s){this._serviceCounters.readHistory++;let l=await this.session.readHistoryValue(I(e),n,s);return(l.historyData?l.historyData?.dataValues??[]:[]).map(j)}async callMethod(e,n,s){this._serviceCounters.call++;let i={objectId:I(e),methodId:I(n),inputArguments:s.map(u=>new B({dataType:p.Null,value:u}))};return(await this.session.call(i)).outputArguments??null}async createMonitoredSubscription(e){this._serviceCounters.subscribe++;let n=await this.session.createSubscription2({requestedPublishingInterval:e.publishingIntervalMs,requestedLifetimeCount:100,requestedMaxKeepAliveCount:10,maxNotificationsPerPublish:0,publishingEnabled:!0,priority:10}),s=null,i=new Map,l=`opcua-sub-${Date.now()}`,u=this.logger;return u.info(`OPC UA CreateSubscription id=${l} publishingInterval=${e.publishingIntervalMs}ms`),{id:l,async addItems(t){let r=t.filter(d=>!i.has(d));if(r.length===0)return;let m=await Promise.all(r.map(d=>n.monitor({nodeId:I(d),attributeId:S.Value},{samplingInterval:e.publishingIntervalMs,discardOldest:!0,queueSize:10},z.Both)));for(let d=0;d<r.length;d++){let y=r[d],o=m[d];o.on("changed",b=>{if(s){let h=D(b);s(y,h.value,h.quality,h.timestamp)}}),i.set(y,o)}u.info(`OPC UA CreateMonitoredItems: ${r.length} items added (total=${i.size})`)},async removeItems(t){let r=t.map(m=>({id:m,item:i.get(m)})).filter(m=>m.item!=null);await Promise.all(r.map(({id:m,item:d})=>(i.delete(m),d.terminate().catch(()=>{}))))},onDataChange(t){s=t},async close(){try{await n.terminate()}catch{}i.clear()}}}};export{x as OpcUaClient,M as OpcUaDataSourceAdapter,$ as qualifiedNameToNsu,P as wrapSessionIfOptimized};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/opcua-adapter.ts","../src/opcua-client.ts","../src/opcua-mapper.ts","../src/optimized.ts"],"mappings":"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","names":["OpcUaDataSourceAdapter","client","_logger","sourceNodeId","sourceNodeIds","value","startTime","endTime","options","AttributeIds","BrowseDirection","browseAll","coerceNodeId","DataType","MessageSecurityMode","NodeClass","OPCUAClient","resolveNodeId","StatusCodes","TimestampsToReturn","UserTokenType","Variant","NodeClass","StatusCodes","NODE_CLASS_NAMES","qualifiedNameToNsu","browseName","namespaceArray","nsIdx","refToSourceNode","ref","parentSourceNodeId","nodeClass","nsuQName","namespaceUri","nsuMatch","dataValueToSource","dv","isGood","dataValueToHistorical","wrapSessionIfOptimized","session","logger","ClientSessionOptimized","optimized","SECURITY_MODES","MessageSecurityMode","OpcUaClient","opts","logger","securityMode","OPCUAClient","count","delay","userIdentity","UserTokenType","session","wrapSessionIfOptimized","nsArrayDv","coerceNodeId","AttributeIds","nodeIds","referenceTypeId","resolveNodeId","nodeId","BrowseDirection","desc","result","refs","txCount","cp","next","seedNodeId","onRef","shouldRecurse","started","output","visited","totalTx","frontier","useParallel","mapped","wave","f","item","waveResults","w","descriptions","browseResults","browseAll","r","nextFrontier","queued","i","ref","childId","m","objectsFolderId","filter","items","ms","parentNodeId","refToSourceNode","NodeClass","name","strategy","nsIdx","nsUri","enrichStart","stdTypes","nonStdTypes","type","ENRICH_CHUNK_SIZE","memberResults","chunk","chunkResults","members","enriched","enrichMs","typeNodeId","variableRefs","dataTypeMap","readItems","dvs","arr","dtValue","modellingRuleMap","memberRefs","mrDescriptions","mrResults","mrRef","uri","idx","dv","dataValueToSource","id","value","nid","readResults","dvArr","dataTypeNodeId","currentDataValue","targetDataType","DataType","dtNum","coercedValue","coerceErr","msg","writeVal","Variant","code","StatusCodes","errMsg","dt","startTime","endTime","resultAny","dataValueToHistorical","objectNodeId","methodNodeId","args","request","a","options","sub","dataChangeCb","monitored","subId","sourceNodeIds","newIds","TimestampsToReturn","toRemove","e","cb"]}
1
+ {"version":3,"sources":["../src/opcua-adapter.ts","../src/opcua-client.ts","../src/opcua-mapper.ts","../src/optimized.ts"],"mappings":"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","names":["OpcUaDataSourceAdapter","client","_logger","sourceNodeId","sourceNodeIds","value","startTime","endTime","options","AttributeIds","BrowseDirection","browseAll","coerceNodeId","DataType","MessageSecurityMode","NodeClass","OPCUAClient","resolveNodeId","StatusCodes","TimestampsToReturn","UserTokenType","Variant","NodeClass","StatusCodes","NODE_CLASS_NAMES","qualifiedNameToNsu","browseName","namespaceArray","nsIdx","refToSourceNode","ref","parentSourceNodeId","nodeClass","nsuQName","namespaceUri","nsuMatch","dataValueToSource","dv","isGood","dataValueToHistorical","wrapSessionIfOptimized","session","logger","ClientSessionOptimized","optimized","SECURITY_MODES","MessageSecurityMode","OpcUaClient","opts","logger","securityMode","OPCUAClient","count","delay","userIdentity","UserTokenType","session","wrapSessionIfOptimized","nsArrayDv","coerceNodeId","AttributeIds","nodeIds","referenceTypeId","resolveNodeId","nodeId","BrowseDirection","desc","result","refs","txCount","cp","next","seedNodeId","onRef","shouldRecurse","started","output","visited","totalTx","frontier","useParallel","mapped","wave","item","waveResults","w","descriptions","browseResults","browseAll","r","nextFrontier","queued","i","ref","childId","m","objectsFolderId","filter","items","ms","parentNodeId","refToSourceNode","NodeClass","name","f","strategy","nsIdx","nsUri","enrichStart","stdTypes","nonStdTypes","type","ENRICH_CHUNK_SIZE","memberResults","chunk","chunkResults","members","enriched","enrichMs","typeNodeId","variableRefs","dataTypeMap","readItems","dvs","arr","dtValue","modellingRuleMap","memberRefs","mrDescriptions","mrResults","mrRef","uri","idx","dv","dataValueToSource","id","value","nid","readResults","dvArr","dataTypeNodeId","currentDataValue","targetDataType","DataType","dtNum","coercedValue","coerceErr","msg","writeVal","Variant","code","StatusCodes","errMsg","dt","startTime","endTime","resultAny","dataValueToHistorical","objectNodeId","methodNodeId","args","request","a","options","sub","dataChangeCb","monitored","subId","sourceNodeIds","newIds","TimestampsToReturn","toRemove","e","cb"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-i3x/opcua-connector",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "i3X OPC UA adapter — implements IDataSourcePort using node-opcua",
5
5
  "license": "AGPL-3.0-or-later OR LicenseRef-Sterfive-Commercial",
6
6
  "author": "Sterfive SAS <contact@sterfive.com> (https://sterfive.com)",
@@ -57,7 +57,7 @@
57
57
  "typecheck": "tsc --noEmit"
58
58
  },
59
59
  "dependencies": {
60
- "@node-i3x/core": "0.5.3",
60
+ "@node-i3x/core": "0.5.4",
61
61
  "node-opcua": "^2.173.1",
62
62
  "node-opcua-client": "^2.173.1"
63
63
  },