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 - v2.110.0

Published by erossignon about 1 year ago

πŸ› bug fix

  • this release fixes #1289, whereby the new X509 certificate generation method based used by node-opcua-crypto could randomly crash.
  • this version relies on [email protected].

πŸ‘¬πŸ½ contributors:

  • @sseiber
node-opcua - v2.109.0

Published by erossignon about 1 year ago

πŸš€ enhancement

🚧 maintenance

  • [c15331d5618effbfc4f5bb817784344acca5873f] remove eumabois
  • [6367995420275f4d951909e5ff3914f79b576bb2] fix NodeJS.Timeout issue caused by latest @types/node ts definition.

πŸ› bug fixes

  • [e0d55815e657e0cc8ba63791ec857501b4eeea3a] [address-space-base] don't use chalk module - fix issue#1285
  • [6eefed7ffa17847181465468d1a6e6d4cd7a6f32] add regression test and investigation code for #1289

πŸ‘¬πŸ½ contributors

  • @ptorrent , @sseiber

🧨 known issues:

  • this version introduces a new way of creating privateKeys and Certificate that do not relies on openssl any more but on the newly introduce WebCrypto API in nodeJS , when it's availbalbe or fall back to a polyfill @pecular/X509 when the suble api is not available.
    ( see #1289 )
    we recommand you use [email protected] instead
node-opcua - v2.108.0

Published by erossignon about 1 year ago

πŸ“› known issues

  • this version introduces a new way of creating privateKeys and Certificate that do not relies on openssl any more but on the newly introduce WebCrypto API in nodeJS , when it's availbalbe or fall back to a polyfill @pecular/X509 when the suble api is not available.
  • We discovered after releasing 2.108 that the suble API may not behave consistently between nodejs version.
  • We recommand that you use [email protected] with nodejs 20.5 or above or with nodejs 16.20 and avoid specifically nodejs 18.x version and version nodejs<=20.04. see #1289

πŸ› bug fixes:

  • 1a066425d properly enum values to coerceInt64 while parsing nodeset2.xml files
  • 9024ddadf add more unittest for coerceInt64
  • 83bca124d fix enum default value issue

πŸš€ enhancements:

  • 831825966 add extract field in pseudo session.
  • 8571c548a 1cd110f09 refactor extractConditionFields.
  • 72dfbf855 refactor constructEventFilter and constructSelectClause.
  • 2e9e962e1 loading old nodesets : better detection and handling of <1.03 nodesets in server

πŸ’• typos fixes that could introduce breaking changes

  • 4c82abc09 chore: fix PseudoVariant definition typo
  • 66d704742 fix acknwoledgeAllConditions spelling

🚧 maintenance

  • 3086de37e chore: use warningLog
  • 9ff68ba05 chore: invalidPrivateKey now null
  • 6f79f839b chore: clean-up crypto imports
  • 9187aac78 update packages
  • c838dcd51 chore: fix spelling error in trace and comments
  • a348156a5 chore: fix eslint script typo
  • 53c90b37d chore: turn warning to debug message
node-opcua - v2.107.0

Published by erossignon over 1 year ago

This version brings significant improvements on the server side with a better handling of StateMachine object;

StateMachine internals are now fully handled by node-opcua ;

  • the AvailableStates and AvailableTransitions variables are automatically populated if they exist on the model.
  • TransitionTime, EffectiveDisplayName are now automatically update if present in the model , when the state changes.
    On StateMachine with SubState, the EffectiveTransitionTime variable of the parent state is automatically updated when the stat of the substate machine changes.

πŸš€ enhancements

  • server: implement automatic support for EffectiveTransitionTime on FiniteStateMachine d5493c1dda4f490b545e54514e32cb35b8e0654f
  • server : StateMachine setState and lastUpdateDate implemened fba2813f1ef5529935d56a34e3a2e32e15db9208

πŸ› bug fixes

  • server: handle with a warning instead of throwing in a error for case where a Variable refers to a TypeDefinition being a ObjectType instead of a VariableType f6831cc3e4323bffd65d38698c4f29374449e002
  • server: fix potential crashes in deactivateAlarm bade5e2519fa48553685e09c9e19058e9c2168e4
node-opcua - v2.106.0

Published by erossignon over 1 year ago

πŸš€ Enhancement

  • 472f424ed expose BaseNode#setDescription #1284
  • b3ac8ebc6 implement UAView#dumpXML

πŸ› bug fix

  • 283bd1f11 improve client reconnection when ActivateSession returns BadUserAccessDenied
  • 5c3f84e60 improve warningLog for buffer inconsistency

πŸ§‘β€πŸ­ maintenance and refactoring

  • 199348a0c d82885562 chore: minor test adjustment
  • 4dfb65138 29b18e38a f1e106178 08024e567 8aa89447b f4dfe9929 asyncify ServerEngine
  • 5b6228e53 client: silently ignore server message sent after channel have been closed by client

πŸ‘­πŸ½ contributors:

  • @ptorrent

As we continue to refine and expand node-opcua, we warmly welcome sponsorships and contributions via our membership program at Sterfive or through OpenCollective. Your generous support empowers us to innovate and foster a community built on shared knowledge and creativity. Together, we are shaping the future of node-opcua!

node-opcua - v2.105.0

Published by erossignon over 1 year ago

πŸ› Bug Fixes

  • Resolved an issue with OPCUAClient#emit('connection_failed',...) where connection failures were not handled correctly. This fix should provide a more robust experience in scenarios with unstable connections. bd5dc553ed6338681237c795b7641ba5baa63aa4

πŸ”§ Maintenance Tasks

  • For better debugging experience, we've removed the use of console.log in the codebase (#1279) 65deea0f59ec1cb5fa8f19bfc9c441003ee56e46). This should help to clean up the console output and improve readability during development.

  • We've corrected lerna.json configurations after upgrading to version 7. 65deea059ec1cb5fa8f19bfc9c441003ee56e46

πŸ‘¬πŸ½ contributors

  • special thanks to @everhardt
node-opcua - v2.104.0

Published by erossignon over 1 year ago

v2.104.0, a significant milestone packed with crucial enhancements, most notably the elimination of openSSL command usage for creating private keys and self-signed certificates.

In this release, we have successfully upgraded node-opcua-crypto to v3.0.0. As a result, crypto key pairs are now generated via the node crypto module, a substantial shift from the previous openSSL dependency.

This enhancement not only simplifies the client integration within your environment by eradicating the need for openssl installation but also ensures a smoother user experience during node-opcua installation in restricted networks. You will no longer experience attempts to fetch and install openssl during the first run, leading to a streamlined installation process.

However, please note that due to this change, node.js version 16.0 or greater is now required, as earlier versions do not support the necessary crypto API.

πŸ’” Breaking Changes

  • Node-opcua now requires esModuleInterop=true for the build, a change made to accommodate new modules we rely on.
  • OpenSSL does not need to be preinstalled anymore
  • NodeJS >= 16 is required

πŸš€ Enhancements

A series of commits have led to updates to the new node-opcua-crypto & pki, and better warning messages for 'BadCertificateChainIncomplete'.

  • 35f7969de chore: createPrivateKey fix issue with node<=16
  • 4c64a1417 update to new node-opcua-crypto & pki
  • 0335415ef switch to esModuleInterop=true
  • e350b932f support BadCertificateChainIncomplete and improve warning message

πŸ› Bug Fixes

Several bugs were squashed in this release, including TypeScript issues that surfaces with the switch to thenew typescript 5.x version, as well as fixes for EnumValueType value initialization.

  • 186bbd1b4 fix typescript issues raised with new ts version
  • 408db1d68 fix EnumValueType value initialisation

πŸ‘ Code Coverage Improvement

Our commitment to high-quality code has seen an upgrade in code coverage, with several commits dedicated to this, and the integration of a new coverall.

  • a8ef721d5 b96cec0da 14c40510cchore: improve code coverage and remove unused code
  • 8e2021e15 aff600b03 use new coverall integration
  • aa95d2ad5 578b1fdcb dc8b41167 212dd90e3 chore: test tuning
  • ac947519c give more memory for coverage
  • 7f34b4816 chore: nyc script
  • bf9495da1 adjust nyc

πŸ§‘β€πŸ­ Maintenance and Code Improvement

Routine maintenance and code cleanup were undertaken, which included verification of certain fixes, package.json cleanup, removal of obsolete WriteMask, and TypeScript fixes in test.

  • fa058833f chore: verify that #937 is fixed (Loading enums from nodeset.xml files does not work for enums with negative values )
  • fdcdb0301 7cad04a9a clean-up package.json
  • 8ffcb1c96 remove obsolete WriteMask
  • 511af5f36 chore: fix typescript in test
  • a484a0241 add test script
  • 9d5cdb1c9 chore: fix export
  • 90a6690a4 relax event loop in test (2)

πŸ“– Documentation

The README.md file was updated, and an example was added to illustrate a particular issue, thereby enhancing the overall documentation.

  • a07575813 Update README.md
  • 9081237dc add example to illustrate #1024

πŸ‘¬πŸ½ community support

As we continue to refine and expand node-opcua, we warmly welcome sponsorships and contributions via our membership program at Sterfive or through OpenCollective. Your generous support empowers us to innovate and foster a community built on shared knowledge and creativity. Together, we are shaping the future of node-opcua!

node-opcua - v2.103.0

Published by erossignon over 1 year ago

πŸ› Bug fixes

  • 7d809e1fe fix issue #1071 related to monitored item not respecting accessRestriction
  • d54729329 improve UAVariable/UAAnalogDataItem write OutOfBound value #1119
  • d54729329 fix UAVariable setter(value) so that returned StatusCode is applied to the dataValue.statusCode #119
  • 17f55181f fix constructBrowsePathFromQualifiedName #1201

πŸš€ enhancement

  • 1b9762866 add ability to overide default transport timeout when creating client #1002

πŸ“– documentation and example

  • a2ac9ec19 add example to illustrate answer in #1120
  • 643b51eac add example to illustrate #1222
  • 3b30c7c96 doc: add example for nodeset_filename option

πŸͺ³ minor adjustment & refactoing

  • 5686a2cb0 relax event loop in test
  • 2a26a65d8 adjust interactive client
  • b0dbc62d7 refactor: clean up nodeset definition/generation code further
  • a8ed0cc91 refactor: clean up nodeset definition/generation code
  • ab9ed0e5f refactor: rename to correct spelling correponding -> corresponding

πŸ‘¬πŸ½ contributors

  • @AndreasHeine, @maximivanov and @jacobq

improve UAVariable/UAAnalogDataItem write OutOfBound value ( #1119)

  • add an optional acceptValueOutOfRange flag to addAnalogItem.
    The acceptValueOutOfRange property indicates whether the write operation will accept or reject
    value which is out of range of the instrumentRange.

  • if true: during am writeOperation by a client if the dataValue that is outside of the
    instrumentRange. it will be recorded database and the statusCode will be set to BadOutOfRange, and
    the write operation will return Good. The value will be ecorded in the history database if the variable supports historizing.

  • if false: during a writeOperation by a client, if the dataValue that is outside of the
    instrumentRangeit will be denied and the write operation will return BadOutOfRange.

node-opcua - v2.102.0

Published by erossignon over 1 year ago

πŸ› Bug Fixes

  • cfb31bfcc18e54e1ea5b8d7a9562480bf57d5dac Error Detection Improvement: Replaced instanceof Error with util.types.isNativeError for more accurate error detection. (Authored by skrtheboss )
  • bdeb0df4dc4e2c11f323ac51bb68579c9b4e1c1d Extra DataType Management Invalidation: Fixed the issue of not invalidating extra dataType management in case of reconnection.
  • 7ecd95b89ae7b2926dbd29ff3ed494c104ed4ce1 Re-entrancy of getExtraDataTypeManager: Made getExtraDataTypeManager re-entrant to avoid potential issues. (Issue #1232 )
  • 88f1744d65e96020ea494800aa0436689c1523d6 Transport Internal State Reset: Ensured the internal state of the transport is reset when a new socket is attached.

πŸš€ Enhancements

  • 15c5ffe590f039aa1558db94154ec8b7e8221930 Keep-Alive Mechanism (WIP): Work in progress on enhancing the keep-alive mechanism for maintaining connections.

  • 37a2ae1450e67a7e4f67aab40e50c85ace713159 Documentation Update: Updated the documentation with the latest changes and improvements.

πŸ‘¬πŸ½ contributors

  • special thanks to @skrtheboss @nakr94 @AndreasHeine @mikakaraila
node-opcua - v2.101.0

Published by erossignon over 1 year ago

🐴 improvements

  • 81e834d3c refactor di-server sample
  • 59256e050 suspend session recreate if session has been normally terminated
  • 69842ca63 refactor TCP Transport class, enhance unit test

πŸ› bug fixes

  • 1a88d3137 improve client reconnection [#1194]

    • detect better socket timeout
    • force reconnection process when socket times out
  • 2807765ef address-space: fix description overloading during clone

πŸš€ enhancement

  • 63d62da99 server: using port 0 now choose a random free port #1254

πŸ’΅ funding activities:

πŸ‘¬πŸ½ contributors:

  • @raptorjs for reporting reconnection issue #1194
node-opcua - v2.100.0

Published by erossignon over 1 year ago

πŸš€ enhancements

  • be0507247906798a0f9e304a586ffda80e912308 server: use preciseClock in asyncRefresh
  • d7dd87332e7e2649e20ea0309af0471a4448da59 addressSpace: expose mininodeset.xml
  • 0ecf572c0b42dd8172cd6a24c82c7c59869f8b5a addressSpace: improve BaseNode#clone
node-opcua -

Published by erossignon over 1 year ago

πŸš€ enhancement

b8c881baab5cade52590c8daf72a1094b8237208 #1264 Add new standard node set and associated typescript definition:

  • IRDI (International Registration Data Identifiers)
  • PA-DIM (Process Automation Device Information Model) (OPC 30081)
  • Machinery/ProcessValues (OPC 40001-2)
  • Machinery/Result (OPC 40001-101)

πŸ‘¬ contributors

  • special thanks to @jacobq
node-opcua -

Published by erossignon over 1 year ago

πŸ› bug fix

  • add files section in packages.json (now required)
node-opcua -

Published by erossignon over 1 year ago

πŸ› bug fix

  • fdf17e0c1da94d28cf6737f1fcb7be5d4dd3cf53 fix field formating in dumpEvent
  • 2c1f388c43bedeb474eaa88e0efc5fc68b83235e fix ObjectType and VariableType instantiation by following "Organizes" references

πŸš€ enhancement

  • update nodesets file ( uses now uses UA 1.05.2)
node-opcua -

Published by erossignon over 1 year ago

πŸ› bug fix

  • 0fdc16923cc53bd292eb258dd7e0fab3c36fd6a7 fix displayName in TwoStateDiscret
    e
  • fb113e701288e0bd47e3639b64500d2b7e586891 node-id: fix error in Typescript 5

🍫 chore

  • 4b1dbcc0e682379cd9132d08e2413412bfbfc973 add BaseNode#isDisposed()
node-opcua -

Published by erossignon over 1 year ago

πŸš€ enhancement

  • 3ffb7be4fd00926aa1dd772a87aabc8eae271b7e add IOLink nodesets
  • c2d649422ac9e8cb0c50fc9ff4d400a75f01d73c client: export transport settings to session
  • c0b2c1cec66efc845763ad59574ebe66847cf7f0 address-space: fix instantiate issue with grand child components defined
  • 4e4f5cbabcfaf4aecfe957a52c9a409d01ac0a0e client:monitoredItem add warning message when monitored event handler is taking too much time to execute
node-opcua -

Published by erossignon over 1 year ago

πŸš€ enhancement

  • 493078920a5005e47d59670fad056a0103926e05 file-transfer: read/write adjust chunksize to ensure packet fits to maxMessageLength
  • f2bdfb747402f61c716bfa730eb8899d82f4a488 Session context now exposes maxMessageLength
node-opcua - v2.94.0

Published by erossignon over 1 year ago

πŸ› bug fix

  • bac3fd597 raise a model changed event on parent folder with Organises Reference
  • 9e4ac97e2 Fix extension array/matrix binding access to individual props (2)

⛑️ maintenance

  • 11c58f603 chore: hide private members better
node-opcua -

Published by erossignon over 1 year ago

πŸ’₯ important change

nodejs 14 is reaching end of life in february 2023, nodejs 16 is now required.

  • 567250baf devEngine for node-opcua-file-type is nodejs>=16

πŸ› bug fixes

  • #1215 c9956897e Refactor DataType validation in UAMultiStateValueDiscreteImpl class ( thanks to @iliareshetov )

πŸš€ enhancement

  • 20e9789b4 FileType; add client helper function to write a large OPCUA file by chunk
  • 100d578d4 finite state machine: allow state to have browseName defined in a difference namespace

⛑️ maintenance

  • e8d9927c9 adjust max-old-size in code coverage
  • 249b290ce refactor: Improve code quality and test coverage of validateDataType function
  • 2004df66c fix lerna invocation in package.json

πŸ‘¬ contributors

  • thansk to @iliareshetov
node-opcua - v2.92.0

Published by erossignon over 1 year ago

πŸš€ enhancement

  • e7f5b9e33 node-opcua-file-transfer add ability to read file by chunk when server limlits the read buffer size
  • 6d63a00ac enhance StateMachine addState and addTransition

πŸ› bug fix

  • 4f47d6536 fix state & transition extraction in FiniteStateMachine
  • 412838ad5 Namespace#addVarable: minimumSamplingInterval when using getter is required

πŸ§‘β€βš•οΈ maintenance

  • 7def11cda Fix extension array/matrix binding access to individual props
  • 2de688636 dataValue: add test for clone
  • f720a75c7 variant: add test for clone
  • d4a1c49ad units: add missing type import
  • 826bef0bf do not use constructor.name
  • 605d7a2bd fix book url
  • 46007634d update external links
  • 605a21ca5 clean badges