node-opcua

Unlocking the Full Potential of OPC UA with Typescript and NodeJS - http://node-opcua.github.io/

MIT License

Downloads
6.7M
Stars
1.4K
Committers
79
node-opcua -

Published by erossignon about 4 years ago

  • remove unnecessary files from package distributions [c9d79d3e760261ca261afa493578c3c73ebd2dcd]
  • fix issues in sameVariant that was introduced by [email protected].
  • reducing usage of underscore
  • replace by native version whenever possible.
    (see https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore)
  • cleanup package.json from unnecessary modules
  • do not use util.callbackify in node-opcua-address-space so it can be browserified.
node-opcua -

Published by erossignon about 4 years ago

  • refactor to reduce usage of "underscore" library
node-opcua -

Published by erossignon about 4 years ago

  • #861 [4b83d961239a22db14aa63dd5f2b57e22891d541] fix xml output of empty ByteString in Variant
  • [152ea0fc8ea515dc6df0c0f7f4bae91ec9cab1a3] allow null as valid array in Variant

πŸ‘¬ contributors

  • @graos (ABB) , customer
node-opcua -

Published by erossignon about 4 years ago

  • [70531a27fe47a030a0e82b8bea5d345e526e3447] use hostname when dns resolves to localhost

  • [be3489e001d504e7af0cb21ed71b11942a5f3a79] improve subscription transfer

  • [6607a4bc703ba9a5a552e823fe0ac77357177ce9] [206d85b64d02a8ca816c9687af75db0e2780c301] ensure policies are unique in end points

  • #857 [0ef0f9e801a5b222e2d60e3c37db23ff8330851b] [e5c852bcf0cfbaabf24ea9ffd4ea6cf7a02b822b] fix namespace translation of MethodDeclarationId while reading Nodeset2file containing more than one namespace.

  • [72d5e9b3e6fec6d63cb7ec3d68bb6e4149d17bba] improve leakDetector for unit test

πŸ‘¬ contributors

  • @graos (ABB)
node-opcua -

Published by erossignon about 4 years ago

🐴 enhancement

  • update standard companion nodeset2.xml files to latest version
  • fix enumeration dataType verification #846

πŸ‘¬ contributors

  • @graos (ABB)
node-opcua -

Published by erossignon about 4 years ago

πŸ› bug fixes

  • [58e55d5] prevent calling session.read when nothing to read.
  • fix #846 extend support for Variable value in nodeset2.xml [3326046]
node-opcua - v2.10.0

Published by erossignon about 4 years ago

πŸ› bug fixes:

*[72b8331] make sure that node-opcua now use fix package version for node-opcua-xxxx

node-opcua -

Published by erossignon about 4 years ago

πŸ› bug fixes

  • [99e6916] fix certificate verification when certificate is signed by a CA
  • [c295d11] improve OpenSecureChannelRequest failure
node-opcua -

Published by erossignon about 4 years ago

πŸ› bug fix

  • [4288a12] fix ClientMonitoredItem.on('terminated', ...)
node-opcua -

Published by erossignon about 4 years ago

🐴 enhancements

  • [0373e42] add predicate function in MachineState#setState to allow selection of suitable transition
  • [0a7ffc1] move AggregateFunction enum to node-opcua-constant and simplify depen

πŸ› bug fixes

  • [9fefd55] read readHistoryValue signature in typescript
node-opcua - v2.8.1

Published by erossignon about 4 years ago

node-opcua -

Published by erossignon about 4 years ago

🐴 enhancements

  • Expose endpoint hostname option in server options
  • [471dfda] improve LDS and add docker file

πŸ› bug fixes

  • [3277a56][22a4f0c] fix encoding decoding of derived structure
  • [8ee3616] add missing chalk import
  • [a1d3d5e] fix readHistoryValue typescript definition

πŸ‘¬ contributors

  • @padraic-padraic @mibux
node-opcua -

Published by erossignon over 4 years ago

πŸ› bug fixes

  • #320 [ExtensionObjects] fix parsing bsd file with non-encodable extension objects (@@DavoodCH)
  • [fd8a753b48fc79ba10158e5c83e46ed5c803f0c8] improve toJSON on ExtensionObject

πŸ’” breaking change

  • [4f5d15bc7cbd02dfa51800d83f11c1a7f5c1d743] improve lowerFirstLetter (BreakingChange)

for instance

example <= @2.6.7 >= @2.7.0 comment
HelloWorld helloWorld helloWorld unchanged
ALM_FlowOutOfTolerance alM_FlowOutOfTolerance ALM_FlowOutOfTolerance
AB_CD_EF AB_CD_EF AB_CD_EF unchanged

OPCUA and Javascript use two different rules to build identifiers.

OPCUA Identifier usually starts with an upper case letter and word are joined together, this is known as the Pascal case, or CapitalizedWords convention. (for instance HelloWorld)
But sometimes, OPCUA identifiers do not follow this convention strictly and we can find various other conventions being applied such as underscore between word, or addition of ACRONYMED prefixes.
On its own, this causes great confusion and inconsistency in programming style.
Javascript uses a slightly different convention called camelCase where word are joined together
and inner words start with a capital letter whereas the first word starts with a lower case letter.
(for instance helloWorld)

In node-opcua we have taken the opinionated decision to consistently use camelCase convention for object properties so that all the code looks nice and consistent.

the lowerFirstLetter method can be used to easily convert from the OPCUA naming convention to the javascript naming convention by applying the following rules.

  • each ASCII sequence in an identifier will be converted to a lower camel case.
  • when an identifier only contains an upper case letter then it will be untouched. ( i.e CQDF => CQFD)
    (this rule helps to preserve acronyms)
  • when an identifier starts with more than one UpperCase letter but still contain a lowercase letter
    then the first Uppercase letter excluding the last one will be converted to lower case
    ( ie: EURange = > euRange)
  • (new rule) when an identifier contains several sequences delimited with underscores (_) the above rules will be applied to each of the element of the sequence ( ie: ALM_FlowOutOfTolerance => ALM_flowOutOfTolerance ( ALM=>ALM , FlowOutOfTolerance =>flowOutOfTolerance)

πŸ‘¬ Contributors

  • @DavoodCH
node-opcua -

Published by erossignon over 4 years ago

πŸ› bug fixes

  • #810 fix whereClause containing Not operator ( fixes server connection with Prosys and Matrikon clients)

🐴 enhancements

  • #803 NodeCrawler#read now expose dataValue as javascript object rather than string.
  • #800 ClientSubscription interface: expose hasSession property

πŸ‘¬ contributors

  • @aki-0919 @bruegth @bblumberg
node-opcua - v2.6.5

Published by erossignon over 4 years ago

πŸ› bug fixes

  • #805 FileType support, make sure handle can only be used by session that created it.
  • #806 FileType support, make sure that Method on FileType can be used to operated on a file object.
  • #804 Fixing monitoredItem to return sourceTimestamp when TimestampsToReturn.Source is specified
  • [bf4f822d98c214e0dcbd2d43cc86d0a0cc64b484] [d4424ecb22e7622cfd81f4aa5732718b180c8c89] [592389032e65b6b417cd5a680bf747ea4b0a9ac3] fix discovering of ExtensionObject defined in multiple namespaces.

πŸ‡ enhancement

  • #796 expose deleteMonitoredItems
  • [bca147370c37c5615678e23dca514bef0f63c15c] improve server shutdown
  • decode ExtensionObject in Event Notficiation by using promoteOpaqueStruction on EventLists in client

πŸ‘¬ contributors

  • @Baum200 , @mstfldmr , Kaz, @demike @HelloHungryImDad
node-opcua -

Published by erossignon over 4 years ago

πŸ› bug fix

  • [3a1ba52c94492df7ce7057f28e65cf55204735fc] fix typescript import causes conflict with "chalk" module.
node-opcua - Better certificate verification , improved xml generation, readAggregate in client

Published by erossignon over 4 years ago

This version introduces significant enhancements

πŸ₯‡ CTT

  • better support for certificate verification in Server to conform strictly to the OPCUA Specfication and make CTT security test pass/

πŸ…°οΈ Aggregates

  • [5a356fd747c3f65f5530064dc2a20fb6953ac7f7] ClientSession#readAggreateValue has been added πŸ‘ @shreeramk
  • [69ebb4f999e2fedc7919e9b11b68b83a449dc9a2] [052c67c506dbf8afad581e9dec0576989b8abb8e] Minimum, Maximum and Average aggregate on server side

🐴 other

  • [bea5412b6ad58c41c46250fc001c92b5cc5426ab] for improve support for Variable containing ExtensionObjects (work in progress)
  • [81778cfd3747cc1d1339d95a3c197d4a6f572c1b] provides decoded extension objects instead of opaque structure monitoredItem.on("change",)
    (no need to use promoteOpaqueStructure inside DataChangeNotification in client MonitoredItem)
  • [15d08d7ab4900ad910ac594a0e36b1150019d8f6] improve handling of arrayDimensions in crawler
  • [9b40b9a0e9fad727c2c00fe029166db84a03a95d] export AccessLevel attribut to nodeset2.xml @DaniHaag

πŸ› bug fixes

  • [835759fe7f8cced4855920d1240c85f5a970f548] fix monitored item sample and object comparaison
  • [b3bd8ae2e41b46c655eb8963cca5be2797f9e7fc] do not send value change notification if sourceTimestamp has not changed
  • [#785] fix TypeScript compiler Error exhibit by typescript 3.9 πŸ‘ @seang96
  • [#786] Bugfixes in simple-client-ts.ts and simple-client.js] πŸ‘ @pirminkager
  • [#763] fix modeller readme πŸ‘ @Mattross45

Notes:

  • the complete Certificate chain is now verify up to the CA root cerficiate.
  • a revocation verification is also perform,
  • the enhancement in the certificate verification requires that the server is aware of the CA certificate of any connecting client that uses a Certificate emitted by this Certificate Authority.
  • this means that the CA certificate must be installed in the issuers folder of the PKI and its associated Certificate Revocation List (CRL) installed in the corresponding CRL folder.
  • Certificate verification will fail the connection if the CA certificate and its CRL doesn't preexist on the server.
  • certificates file can now be updated ( added /removed) by an external file. a running node-opcua server will now periodically rescan the certificate list so there is no need anymore to stop and restart the server when certificates files changes.

πŸ‘¬ contributors

  • @seang96 @shreeramk @pirminkager @Razzeee @DaniHaag @Mattross45
node-opcua -

Published by erossignon over 4 years ago

Do not use for production

node-opcua - v2.5.12

Published by erossignon over 4 years ago

πŸ› bug fixes

  • [73c4e35c0d1210c310a4dfaea54b4bb209a70ca4] handle InList operator for WhereClauses ( to fix server issue with Pythonopcua client)

🐴 enhancements

node-opcua -

Published by erossignon over 4 years ago

πŸ› bug fixes

  • [3636dee2f4973370aaabf0a7859404be071e48c6] do not assume that DataType have only numeric nodeIds
  • [39e55c5abee1ae582f7fbdf7398dd4a7d1923a9d] fixes some X509 certificate validation statusCodes

🐴 enhancements