node-opcua-address-space 2.170.1 → 2.173.0

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.
Files changed (458) hide show
  1. package/dist/source/address_space_ts.d.ts +13 -13
  2. package/dist/source/address_space_ts.js +4 -0
  3. package/dist/source/address_space_ts.js.map +1 -1
  4. package/dist/source/continuation_points/continuation_point_manager.d.ts +6 -3
  5. package/dist/source/continuation_points/continuation_point_manager.js +4 -4
  6. package/dist/source/continuation_points/continuation_point_manager.js.map +1 -1
  7. package/dist/source/helpers/adjust_browse_direction.d.ts +1 -1
  8. package/dist/source/helpers/argument_list.d.ts +13 -11
  9. package/dist/source/helpers/argument_list.js +24 -15
  10. package/dist/source/helpers/argument_list.js.map +1 -1
  11. package/dist/source/helpers/call_helpers.d.ts +6 -3
  12. package/dist/source/helpers/call_helpers.js +5 -6
  13. package/dist/source/helpers/call_helpers.js.map +1 -1
  14. package/dist/source/helpers/coerce_enum_value.d.ts +2 -2
  15. package/dist/source/helpers/coerce_enum_value.js +2 -2
  16. package/dist/source/helpers/coerce_enum_value.js.map +1 -1
  17. package/dist/source/helpers/dump_tools.d.ts +3 -3
  18. package/dist/source/helpers/dump_tools.js +2 -2
  19. package/dist/source/helpers/dump_tools.js.map +1 -1
  20. package/dist/source/helpers/ensure_secure_access.d.ts +1 -1
  21. package/dist/source/helpers/ensure_secure_access.js +1 -1
  22. package/dist/source/helpers/ensure_secure_access.js.map +1 -1
  23. package/dist/source/helpers/make_optionals_map.js +0 -5
  24. package/dist/source/helpers/make_optionals_map.js.map +1 -1
  25. package/dist/source/helpers/multiform_func.d.ts +1 -1
  26. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +1 -1
  27. package/dist/source/helpers/resolve_opaque_on_address_space.js +1 -1
  28. package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -1
  29. package/dist/source/index.d.ts +38 -38
  30. package/dist/source/index.js +53 -54
  31. package/dist/source/index.js.map +1 -1
  32. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +3 -3
  33. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +11 -11
  34. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +6 -6
  35. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +3 -3
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +4 -4
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +2 -2
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +2 -2
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +2 -2
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +4 -3
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +2 -2
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +2 -2
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +3 -3
  44. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +10 -13
  45. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +11 -11
  46. package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts +11 -0
  47. package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.js +3 -0
  48. package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.js.map +1 -0
  49. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +5 -5
  50. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +21 -29
  51. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +3 -7
  52. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +0 -23
  53. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -1
  54. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +3 -3
  55. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +8 -10
  56. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +4 -6
  57. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +5 -5
  58. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +3 -3
  59. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +7 -7
  60. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +5 -8
  61. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +5 -5
  62. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +3 -3
  63. package/dist/source/interfaces/extension_object_constructor.d.ts +3 -3
  64. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +3 -3
  65. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +2 -2
  66. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +3 -3
  67. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +6 -6
  68. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +7 -6
  69. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +4 -0
  70. package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +1 -1
  71. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +2 -2
  72. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +2 -2
  73. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +3 -0
  74. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -1
  75. package/dist/source/loader/decode_xml_extension_object.d.ts +4 -4
  76. package/dist/source/loader/decode_xml_extension_object.js +3 -3
  77. package/dist/source/loader/decode_xml_extension_object.js.map +1 -1
  78. package/dist/source/loader/ensure_datatype_extracted.d.ts +2 -2
  79. package/dist/source/loader/ensure_datatype_extracted.js +5 -5
  80. package/dist/source/loader/ensure_datatype_extracted.js.map +1 -1
  81. package/dist/source/loader/generateAddressSpaceRaw.d.ts +3 -3
  82. package/dist/source/loader/generateAddressSpaceRaw.js +6 -6
  83. package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -1
  84. package/dist/source/loader/load_nodeset2.js.map +1 -1
  85. package/dist/source/loader/make_xml_extension_object_parser.d.ts +2 -2
  86. package/dist/source/loader/make_xml_extension_object_parser.js +19 -19
  87. package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
  88. package/dist/source/loader/namespace_post_step.d.ts +1 -1
  89. package/dist/source/loader/namespace_post_step.js.map +1 -1
  90. package/dist/source/loader/parsers/extension_object_parser.d.ts +4 -4
  91. package/dist/source/loader/parsers/extension_object_parser.js +22 -23
  92. package/dist/source/loader/parsers/extension_object_parser.js.map +1 -1
  93. package/dist/source/loader/parsers/localized_text_parser.d.ts +2 -2
  94. package/dist/source/loader/parsers/localized_text_parser.js.map +1 -1
  95. package/dist/source/loader/parsers/nodeid_parser.d.ts +1 -1
  96. package/dist/source/loader/parsers/nodeid_parser.js.map +1 -1
  97. package/dist/source/loader/parsers/qualified_name_parser.d.ts +3 -3
  98. package/dist/source/loader/parsers/qualified_name_parser.js.map +1 -1
  99. package/dist/source/loader/parsers/variant_parser.d.ts +5 -5
  100. package/dist/source/loader/parsers/variant_parser.js +13 -13
  101. package/dist/source/loader/parsers/variant_parser.js.map +1 -1
  102. package/dist/source/loader/register_node_promoter.d.ts +1 -1
  103. package/dist/source/loader/register_node_promoter.js.map +1 -1
  104. package/dist/source/namespace.d.ts +4 -4
  105. package/dist/source/namespace_alarm_and_condition.d.ts +22 -21
  106. package/dist/source/namespace_data_access.d.ts +11 -11
  107. package/dist/source/namespace_machine_state.d.ts +4 -4
  108. package/dist/source/pseudo_session.d.ts +8 -5
  109. package/dist/source/pseudo_session.js +28 -28
  110. package/dist/source/pseudo_session.js.map +1 -1
  111. package/dist/source/session_context.js +1 -1
  112. package/dist/source/session_context.js.map +1 -1
  113. package/dist/source/set_namespace_meta_data.d.ts +1 -1
  114. package/dist/source/set_namespace_meta_data.js +1 -1
  115. package/dist/source/set_namespace_meta_data.js.map +1 -1
  116. package/dist/source/ua_addin.d.ts +3 -3
  117. package/dist/source/ua_addin.js +1 -1
  118. package/dist/source/ua_addin.js.map +1 -1
  119. package/dist/source/ua_interface.js +4 -1
  120. package/dist/source/ua_interface.js.map +1 -1
  121. package/dist/source/ua_root_folder.d.ts +1 -1
  122. package/dist/source/ua_two_state_variable_ex.d.ts +5 -5
  123. package/dist/src/_instantiate_helpers.js +1 -1
  124. package/dist/src/_instantiate_helpers.js.map +1 -1
  125. package/dist/src/_mandatory_child_or_requested_optional_filter.d.ts +2 -2
  126. package/dist/src/_mandatory_child_or_requested_optional_filter.js +7 -8
  127. package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +1 -1
  128. package/dist/src/address_space.js +5 -6
  129. package/dist/src/address_space.js.map +1 -1
  130. package/dist/src/address_space_change_event_tools.d.ts +3 -3
  131. package/dist/src/address_space_change_event_tools.js +8 -10
  132. package/dist/src/address_space_change_event_tools.js.map +1 -1
  133. package/dist/src/address_space_private.d.ts +11 -11
  134. package/dist/src/address_space_private.js +3 -0
  135. package/dist/src/address_space_private.js.map +1 -1
  136. package/dist/src/alarms_and_conditions/condition.js.map +1 -1
  137. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +6 -6
  138. package/dist/src/alarms_and_conditions/condition_info_impl.js +6 -15
  139. package/dist/src/alarms_and_conditions/condition_info_impl.js.map +1 -1
  140. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +10 -10
  141. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +76 -47
  142. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  143. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +8 -5
  144. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +15 -9
  145. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
  146. package/dist/src/alarms_and_conditions/index.d.ts +3 -3
  147. package/dist/src/alarms_and_conditions/index.js +3 -3
  148. package/dist/src/alarms_and_conditions/index.js.map +1 -1
  149. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +21 -14
  150. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +26 -21
  151. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
  152. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +6 -7
  153. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +30 -28
  154. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  155. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +9 -11
  156. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +10 -10
  157. package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -1
  158. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +3 -1
  159. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +6 -5
  160. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  161. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +16 -42
  162. package/dist/src/alarms_and_conditions/ua_condition_impl.js +100 -82
  163. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  164. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +12 -7
  165. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +9 -8
  166. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -1
  167. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +18 -18
  168. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +16 -18
  169. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  170. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +4 -4
  171. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +2 -2
  172. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -1
  173. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +10 -9
  174. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +20 -19
  175. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  176. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +2 -4
  177. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -1
  178. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +12 -38
  179. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +50 -65
  180. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  181. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +15 -17
  182. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +15 -11
  183. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  184. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +22 -15
  185. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +35 -24
  186. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  187. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +15 -16
  188. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +19 -14
  189. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  190. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +4 -4
  191. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +1 -1
  192. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
  193. package/dist/src/apply_condition_refresh.d.ts +4 -4
  194. package/dist/src/apply_condition_refresh.js +1 -1
  195. package/dist/src/apply_condition_refresh.js.map +1 -1
  196. package/dist/src/base_node_impl.d.ts +4 -6
  197. package/dist/src/base_node_impl.js +3 -3
  198. package/dist/src/base_node_impl.js.map +1 -1
  199. package/dist/src/base_node_private.js +1 -2
  200. package/dist/src/base_node_private.js.map +1 -1
  201. package/dist/src/check_value_rank_compatibility.js +10 -6
  202. package/dist/src/check_value_rank_compatibility.js.map +1 -1
  203. package/dist/src/data_access/add_dataItem_stuff.d.ts +1 -1
  204. package/dist/src/data_access/add_dataItem_stuff.js +2 -22
  205. package/dist/src/data_access/add_dataItem_stuff.js.map +1 -1
  206. package/dist/src/data_access/adjust_datavalue_status_code.d.ts +6 -3
  207. package/dist/src/data_access/adjust_datavalue_status_code.js +3 -3
  208. package/dist/src/data_access/adjust_datavalue_status_code.js.map +1 -1
  209. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +13 -11
  210. package/dist/src/data_access/ua_multistate_discrete_impl.js +28 -23
  211. package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -1
  212. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +19 -23
  213. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +31 -31
  214. package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +1 -1
  215. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +10 -16
  216. package/dist/src/data_access/ua_two_state_discrete_impl.js +18 -14
  217. package/dist/src/data_access/ua_two_state_discrete_impl.js.map +1 -1
  218. package/dist/src/event_data.js.map +1 -1
  219. package/dist/src/extension_object_array_node.d.ts +5 -2
  220. package/dist/src/extension_object_array_node.js +21 -24
  221. package/dist/src/extension_object_array_node.js.map +1 -1
  222. package/dist/src/get_basic_datatype.d.ts +2 -2
  223. package/dist/src/get_basic_datatype.js.map +1 -1
  224. package/dist/src/historical_access/address_space_historical_data_node.d.ts +3 -3
  225. package/dist/src/historical_access/address_space_historical_data_node.js +24 -17
  226. package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -1
  227. package/dist/src/idx_iterator.js +1 -1
  228. package/dist/src/idx_iterator.js.map +1 -1
  229. package/dist/src/index_current.d.ts +31 -31
  230. package/dist/src/index_current.js +45 -45
  231. package/dist/src/index_current.js.map +1 -1
  232. package/dist/src/namespace_impl.d.ts +4 -3
  233. package/dist/src/namespace_impl.js +17 -14
  234. package/dist/src/namespace_impl.js.map +1 -1
  235. package/dist/src/namespace_private.js.map +1 -1
  236. package/dist/src/nodeid_manager.d.ts +3 -3
  237. package/dist/src/nodeid_manager.js +19 -16
  238. package/dist/src/nodeid_manager.js.map +1 -1
  239. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +1 -1
  240. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  241. package/dist/src/nodeset_tools/construct_namespace_dependency.js +22 -9
  242. package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -1
  243. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +1 -1
  244. package/dist/src/nodeset_tools/dump_to_bsd.js +15 -11
  245. package/dist/src/nodeset_tools/dump_to_bsd.js.map +1 -1
  246. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +5 -3
  247. package/dist/src/nodeset_tools/nodeset_to_xml.js +69 -72
  248. package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
  249. package/dist/src/private_namespace.d.ts +2 -2
  250. package/dist/src/private_namespace.js.map +1 -1
  251. package/dist/src/reference_impl.d.ts +2 -2
  252. package/dist/src/reference_impl.js +9 -11
  253. package/dist/src/reference_impl.js.map +1 -1
  254. package/dist/src/role_permissions.d.ts +1 -1
  255. package/dist/src/role_permissions.js.map +1 -1
  256. package/dist/src/state_machine/finite_state_machine.d.ts +11 -14
  257. package/dist/src/state_machine/finite_state_machine.js +36 -30
  258. package/dist/src/state_machine/finite_state_machine.js.map +1 -1
  259. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +8 -6
  260. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +16 -18
  261. package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -1
  262. package/dist/src/state_machine/ua_two_state_variable.d.ts +12 -11
  263. package/dist/src/state_machine/ua_two_state_variable.js +24 -29
  264. package/dist/src/state_machine/ua_two_state_variable.js.map +1 -1
  265. package/dist/src/tool_isSubtypeOf.d.ts +5 -5
  266. package/dist/src/tool_isSubtypeOf.js +21 -18
  267. package/dist/src/tool_isSubtypeOf.js.map +1 -1
  268. package/dist/src/ua_condition_type.d.ts +1 -1
  269. package/dist/src/ua_data_type_impl.js.map +1 -1
  270. package/dist/src/ua_method_impl.d.ts +9 -5
  271. package/dist/src/ua_method_impl.js +1 -1
  272. package/dist/src/ua_method_impl.js.map +1 -1
  273. package/dist/src/ua_object_impl.d.ts +7 -5
  274. package/dist/src/ua_object_impl.js +13 -11
  275. package/dist/src/ua_object_impl.js.map +1 -1
  276. package/dist/src/ua_object_type_impl.d.ts +7 -5
  277. package/dist/src/ua_object_type_impl.js +4 -5
  278. package/dist/src/ua_object_type_impl.js.map +1 -1
  279. package/dist/src/ua_reference_type_impl.d.ts +6 -8
  280. package/dist/src/ua_reference_type_impl.js +16 -14
  281. package/dist/src/ua_reference_type_impl.js.map +1 -1
  282. package/dist/src/ua_variable_impl.d.ts +43 -45
  283. package/dist/src/ua_variable_impl.js +99 -83
  284. package/dist/src/ua_variable_impl.js.map +1 -1
  285. package/dist/src/ua_variable_impl_ext_obj.d.ts +3 -3
  286. package/dist/src/ua_variable_impl_ext_obj.js +37 -29
  287. package/dist/src/ua_variable_impl_ext_obj.js.map +1 -1
  288. package/dist/src/ua_variable_type_impl.d.ts +11 -11
  289. package/dist/src/ua_variable_type_impl.js +13 -21
  290. package/dist/src/ua_variable_type_impl.js.map +1 -1
  291. package/dist/src/ua_view_impl.d.ts +3 -4
  292. package/dist/src/ua_view_impl.js +5 -6
  293. package/dist/src/ua_view_impl.js.map +1 -1
  294. package/dist/src/validate_data_type_correctness.d.ts +2 -2
  295. package/dist/src/validate_data_type_correctness.js +12 -3
  296. package/dist/src/validate_data_type_correctness.js.map +1 -1
  297. package/dist/tsconfig_base.tsbuildinfo +1 -1
  298. package/distHelpers/add_event_generator_object.d.ts +5 -2
  299. package/distHelpers/add_event_generator_object.js +2 -2
  300. package/distHelpers/add_event_generator_object.js.map +1 -1
  301. package/distHelpers/alarms_and_conditions_demo.d.ts +1 -1
  302. package/distHelpers/alarms_and_conditions_demo.js +4 -6
  303. package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
  304. package/distHelpers/assertHasMatchingReference.d.ts +1 -1
  305. package/distHelpers/assertHasMatchingReference.js +2 -2
  306. package/distHelpers/assertHasMatchingReference.js.map +1 -1
  307. package/distHelpers/boiler_system.d.ts +6 -3
  308. package/distHelpers/boiler_system.js +44 -42
  309. package/distHelpers/boiler_system.js.map +1 -1
  310. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +1 -1
  311. package/distHelpers/create_minimalist_address_space_nodeset.js +25 -27
  312. package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -1
  313. package/distHelpers/get_address_space_fixture.js +1 -1
  314. package/distHelpers/get_address_space_fixture.js.map +1 -1
  315. package/distHelpers/mock_session.d.ts +7 -7
  316. package/distHelpers/mock_session.js +4 -4
  317. package/distHelpers/mock_session.js.map +1 -1
  318. package/distNodeJS/generate_address_space.d.ts +2 -2
  319. package/distNodeJS/generate_address_space.js +2 -2
  320. package/distNodeJS/generate_address_space.js.map +1 -1
  321. package/package.json +36 -36
  322. package/source/address_space_ts.ts +29 -30
  323. package/source/continuation_points/continuation_point_manager.ts +8 -7
  324. package/source/helpers/adjust_browse_direction.ts +1 -1
  325. package/source/helpers/argument_list.ts +37 -25
  326. package/source/helpers/call_helpers.ts +10 -15
  327. package/source/helpers/coerce_enum_value.ts +4 -4
  328. package/source/helpers/dump_tools.ts +6 -11
  329. package/source/helpers/ensure_secure_access.ts +2 -2
  330. package/source/helpers/make_optionals_map.ts +3 -10
  331. package/source/helpers/multiform_func.ts +1 -1
  332. package/source/helpers/resolve_opaque_on_address_space.ts +2 -2
  333. package/source/index.ts +44 -54
  334. package/source/interfaces/alarms_and_conditions/condition_info_i.ts +3 -4
  335. package/source/interfaces/alarms_and_conditions/condition_snapshot.ts +13 -13
  336. package/source/interfaces/alarms_and_conditions/deviation_stuff.ts +8 -10
  337. package/source/interfaces/alarms_and_conditions/install_setpoint_options.ts +4 -5
  338. package/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.ts +4 -6
  339. package/source/interfaces/alarms_and_conditions/instantiate_condition_options.ts +3 -3
  340. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +2 -2
  341. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +2 -2
  342. package/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +6 -3
  343. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +2 -2
  344. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +2 -2
  345. package/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +11 -11
  346. package/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.ts +11 -25
  347. package/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +16 -13
  348. package/source/interfaces/alarms_and_conditions/ua_base_event_ex.ts +12 -0
  349. package/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +5 -5
  350. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +30 -54
  351. package/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +3 -34
  352. package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +18 -22
  353. package/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +8 -15
  354. package/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.ts +4 -7
  355. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +5 -6
  356. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.ts +3 -3
  357. package/source/interfaces/data_access/ua_multistate_discrete_ex.ts +9 -16
  358. package/source/interfaces/data_access/ua_multistate_value_discrete_ex.ts +5 -8
  359. package/source/interfaces/data_access/ua_two_state_discrete_ex.ts +5 -5
  360. package/source/interfaces/data_access/ua_y_array_item_ex.ts +3 -3
  361. package/source/interfaces/extension_object_constructor.ts +3 -4
  362. package/source/interfaces/i_condition_variable_type_setter_options.ts +1 -3
  363. package/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +3 -3
  364. package/source/interfaces/state_machine/ua_finite_state_machine_type.ts +2 -2
  365. package/source/interfaces/state_machine/ua_program_state_machine_type.ts +3 -3
  366. package/source/interfaces/state_machine/ua_shelved_state_machine_ex.ts +10 -7
  367. package/source/interfaces/state_machine/ua_state_machine_type.ts +11 -8
  368. package/source/interfaces/state_machine/ua_transition_ex.ts +2 -2
  369. package/source/interfaces/ua_subscription_diagnostics_variable_ex.ts +3 -2
  370. package/source/loader/decode_xml_extension_object.ts +7 -7
  371. package/source/loader/ensure_datatype_extracted.ts +14 -19
  372. package/source/loader/generateAddressSpaceRaw.ts +12 -13
  373. package/source/loader/load_nodeset2.ts +3 -3
  374. package/source/loader/make_xml_extension_object_parser.ts +55 -39
  375. package/source/loader/namespace_post_step.ts +3 -4
  376. package/source/loader/parsers/extension_object_parser.ts +63 -62
  377. package/source/loader/parsers/localized_text_parser.ts +3 -3
  378. package/source/loader/parsers/nodeid_parser.ts +2 -3
  379. package/source/loader/parsers/qualified_name_parser.ts +6 -7
  380. package/source/loader/parsers/variant_parser.ts +48 -55
  381. package/source/loader/register_node_promoter.ts +2 -2
  382. package/source/namespace.ts +4 -4
  383. package/source/namespace_alarm_and_condition.ts +22 -22
  384. package/source/namespace_data_access.ts +12 -13
  385. package/source/namespace_machine_state.ts +10 -5
  386. package/source/pseudo_session.ts +53 -50
  387. package/source/session_context.ts +1 -1
  388. package/source/set_namespace_meta_data.ts +3 -3
  389. package/source/ua_addin.ts +10 -11
  390. package/source/ua_interface.ts +10 -7
  391. package/source/ua_root_folder.ts +1 -1
  392. package/source/ua_two_state_variable_ex.ts +5 -5
  393. package/source_nodejs/generate_address_space.ts +5 -9
  394. package/src/_instantiate_helpers.ts +26 -16
  395. package/src/_mandatory_child_or_requested_optional_filter.ts +16 -15
  396. package/src/address_space.ts +24 -33
  397. package/src/address_space_change_event_tools.ts +25 -30
  398. package/src/address_space_private.ts +20 -21
  399. package/src/alarms_and_conditions/condition.ts +0 -2
  400. package/src/alarms_and_conditions/condition_info_impl.ts +11 -19
  401. package/src/alarms_and_conditions/condition_snapshot_impl.ts +106 -82
  402. package/src/alarms_and_conditions/deviation_alarm_helper.ts +20 -15
  403. package/src/alarms_and_conditions/index.ts +3 -3
  404. package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +44 -32
  405. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +35 -34
  406. package/src/alarms_and_conditions/ua_base_event_impl.ts +15 -19
  407. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +6 -2
  408. package/src/alarms_and_conditions/ua_condition_impl.ts +140 -130
  409. package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +20 -12
  410. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +40 -43
  411. package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +7 -7
  412. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +28 -30
  413. package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +3 -6
  414. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +59 -90
  415. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +31 -27
  416. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +57 -36
  417. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +31 -27
  418. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +6 -6
  419. package/src/apply_condition_refresh.ts +7 -8
  420. package/src/base_node_impl.ts +63 -44
  421. package/src/base_node_private.ts +12 -4
  422. package/src/check_value_rank_compatibility.ts +18 -14
  423. package/src/data_access/add_dataItem_stuff.ts +3 -4
  424. package/src/data_access/adjust_datavalue_status_code.ts +7 -7
  425. package/src/data_access/ua_multistate_discrete_impl.ts +44 -28
  426. package/src/data_access/ua_multistate_value_discrete_impl.ts +77 -66
  427. package/src/data_access/ua_two_state_discrete_impl.ts +29 -36
  428. package/src/event_data.ts +53 -53
  429. package/src/extension_object_array_node.ts +27 -28
  430. package/src/get_basic_datatype.ts +4 -5
  431. package/src/historical_access/address_space_historical_data_node.ts +65 -50
  432. package/src/idx_iterator.ts +4 -12
  433. package/src/index_current.ts +33 -45
  434. package/src/namespace_impl.ts +75 -62
  435. package/src/namespace_private.ts +2 -8
  436. package/src/nodeid_manager.ts +30 -27
  437. package/src/nodeset_tools/adjust_namespace_array.ts +1 -1
  438. package/src/nodeset_tools/construct_namespace_dependency.ts +30 -18
  439. package/src/nodeset_tools/dump_to_bsd.ts +27 -22
  440. package/src/nodeset_tools/nodeset_to_xml.ts +100 -119
  441. package/src/private_namespace.ts +3 -6
  442. package/src/reference_impl.ts +11 -14
  443. package/src/role_permissions.ts +1 -1
  444. package/src/state_machine/finite_state_machine.ts +60 -61
  445. package/src/state_machine/ua_shelving_state_machine_ex.ts +23 -23
  446. package/src/state_machine/ua_two_state_variable.ts +34 -31
  447. package/src/tool_isSubtypeOf.ts +48 -33
  448. package/src/ua_condition_type.ts +1 -1
  449. package/src/ua_data_type_impl.ts +12 -13
  450. package/src/ua_method_impl.ts +17 -12
  451. package/src/ua_object_impl.ts +38 -33
  452. package/src/ua_object_type_impl.ts +22 -22
  453. package/src/ua_reference_type_impl.ts +19 -19
  454. package/src/ua_variable_impl.ts +240 -220
  455. package/src/ua_variable_impl_ext_obj.ts +63 -50
  456. package/src/ua_variable_type_impl.ts +43 -49
  457. package/src/ua_view_impl.ts +5 -5
  458. package/src/validate_data_type_correctness.ts +17 -8
@@ -3,25 +3,27 @@
3
3
  */
4
4
 
5
5
  import { isDeepStrictEqual as isEqual } from "node:util";
6
- import { EventEmitter } from "node:events";
7
6
  import chalk from "chalk";
8
-
9
- import type {
10
- AddReferenceOpts,
11
- BaseNode,
12
- BrowseDescriptionOptions2,
13
- IAddressSpace,
14
- INamespace,
15
- ISessionContext,
16
- ModellingRuleType,
17
- UAMethod,
18
- UAObject,
19
- UAObjectType,
20
- UAProperty,
21
- UAReference,
22
- UAReferenceType,
23
- UAVariable,
24
- UAVariableType
7
+ import {
8
+ type AddReferenceOpts,
9
+ type AttributeEventName,
10
+ type BaseNode,
11
+ type BaseNodeEvents,
12
+ type BrowseDescriptionOptions2,
13
+ type IAddressSpace,
14
+ type INamespace,
15
+ type ISessionContext,
16
+ type ListenerSignature,
17
+ type ModellingRuleType,
18
+ TypedEventEmitter,
19
+ type UAMethod,
20
+ type UAObject,
21
+ type UAObjectType,
22
+ type UAProperty,
23
+ type UAReference,
24
+ type UAReferenceType,
25
+ type UAVariable,
26
+ type UAVariableType
25
27
  } from "node-opcua-address-space-base";
26
28
  import { assert } from "node-opcua-assert";
27
29
  import type { UAString } from "node-opcua-basic-types";
@@ -131,10 +133,9 @@ function _is_valid_BrowseDirection(browseDirection: BrowseDirection) {
131
133
  browseDirection === BrowseDirection.Both
132
134
  );
133
135
  }
134
-
135
- export function makeAttributeEventName(attributeId: AttributeIds): string {
136
+ export function makeAttributeEventName(attributeId: AttributeIds): AttributeEventName {
136
137
  const attributeName = attributeNameById[attributeId];
137
- return `${attributeName}_changed`;
138
+ return `${attributeName}_changed` as AttributeEventName;
138
139
  }
139
140
 
140
141
  /**
@@ -154,15 +155,17 @@ export function makeAttributeEventName(attributeId: AttributeIds): string {
154
155
  *
155
156
  *
156
157
  */
157
- export class BaseNodeImpl extends EventEmitter implements BaseNode {
158
- public static makeAttributeEventName(attributeId: AttributeIds): string {
158
+
159
+ export abstract class BaseNodeImpl<T extends BaseNodeEvents & ListenerSignature<T> = BaseNodeEvents>
160
+ extends TypedEventEmitter<T> implements BaseNode<T> {
161
+ public static makeAttributeEventName(attributeId: AttributeIds): AttributeEventName {
159
162
  return makeAttributeEventName(attributeId);
160
163
  }
161
164
 
162
165
  private _accessRestrictions?: AccessRestrictionsFlag;
163
166
  private _rolePermissions?: RolePermissionType[];
164
167
 
165
- public onFirstBrowseAction?: (this: BaseNode) => Promise<void>;
168
+ // public onFirstBrowseAction?: (this: BaseNode<T>) => Promise<void>;
166
169
 
167
170
  public get addressSpace(): IAddressSpace {
168
171
  const _private = BaseNode_getPrivate(this);
@@ -611,7 +614,7 @@ export class BaseNodeImpl extends EventEmitter implements BaseNode {
611
614
  const methods = this.getMethods();
612
615
  const select = _filter_by_browse_name(methods, methodName, namespaceIndex);
613
616
  assert(select.length <= 1, "BaseNode#getMethodByName found duplicated reference");
614
- return select.length === 1 ? select[0] : null;
617
+ return select.length === 1 ? select[0] as UAMethod: null;
615
618
  }
616
619
 
617
620
  public getWriteMask(): number {
@@ -1165,7 +1168,7 @@ export class BaseNodeImpl extends EventEmitter implements BaseNode {
1165
1168
  * @private
1166
1169
  */
1167
1170
  public dispose(): void {
1168
- this.emit("dispose");
1171
+ (this as BaseNode).emit("dispose");
1169
1172
 
1170
1173
  this.removeAllListeners();
1171
1174
  this._clear_caches();
@@ -1330,7 +1333,7 @@ export class BaseNodeImpl extends EventEmitter implements BaseNode {
1330
1333
 
1331
1334
  private _notifyAttributeChange(attributeId: AttributeIds): void {
1332
1335
  const event_name = BaseNodeImpl.makeAttributeEventName(attributeId);
1333
- this.emit(event_name, this.readAttribute(SessionContext.defaultContext, attributeId));
1336
+ (this as BaseNode).emit(event_name, this.readAttribute(SessionContext.defaultContext, attributeId));
1334
1337
  }
1335
1338
 
1336
1339
  private _clear_caches() {
@@ -1342,15 +1345,15 @@ export class BaseNodeImpl extends EventEmitter implements BaseNode {
1342
1345
  // Historizing or RolePermissions Attribute
1343
1346
  if (!context) return true;
1344
1347
  if (attributeId === AttributeIds.Historizing) {
1345
- return context.checkPermission(this, PermissionType.WriteHistorizing);
1348
+ return context.checkPermission(this as BaseNode, PermissionType.WriteHistorizing);
1346
1349
  }
1347
1350
  if (attributeId === AttributeIds.RolePermissions) {
1348
- return context.checkPermission(this, PermissionType.WriteRolePermissions);
1351
+ return context.checkPermission(this as BaseNode, PermissionType.WriteRolePermissions);
1349
1352
  }
1350
1353
  if (attributeId === AttributeIds.Value) {
1351
- return context.checkPermission(this, PermissionType.Write);
1354
+ return context.checkPermission(this as BaseNode, PermissionType.Write);
1352
1355
  }
1353
- return context.checkPermission(this, PermissionType.WriteAttribute);
1356
+ return context.checkPermission(this as BaseNode, PermissionType.WriteAttribute);
1354
1357
  }
1355
1358
 
1356
1359
  private _readAccessRestrictions(_context: ISessionContext | null): DataValue {
@@ -1371,7 +1374,7 @@ export class BaseNodeImpl extends EventEmitter implements BaseNode {
1371
1374
  // https://reference.opcfoundation.org/v104/Core/docs/Part3/4.8.3/
1372
1375
 
1373
1376
  // to do check that current user can read permission
1374
- if (context && !context.checkPermission(this, PermissionType.ReadRolePermissions)) {
1377
+ if (context && !context.checkPermission(this as BaseNode, PermissionType.ReadRolePermissions)) {
1375
1378
  return new DataValue({
1376
1379
  statusCode: StatusCodes.BadSecurityModeInsufficient
1377
1380
  });
@@ -1405,7 +1408,7 @@ export class BaseNodeImpl extends EventEmitter implements BaseNode {
1405
1408
  const allUserCanSeeTheirOwnRolePermissions = true;
1406
1409
  if (!allUserCanSeeTheirOwnRolePermissions) {
1407
1410
  // to do check that current user can read permission
1408
- if (context && !context.checkPermission(this, PermissionType.ReadRolePermissions)) {
1411
+ if (context && !context.checkPermission(this as BaseNode, PermissionType.ReadRolePermissions)) {
1409
1412
  return new DataValue({
1410
1413
  statusCode: StatusCodes.BadSecurityModeInsufficient
1411
1414
  });
@@ -1536,8 +1539,8 @@ function toObject(addressSpace: IAddressSpace, reference: UAReference): BaseNode
1536
1539
  if (doDebug && !obj) {
1537
1540
  debugLog(
1538
1541
  chalk.red(" Warning : object with nodeId ") +
1539
- chalk.cyan(reference.nodeId.toString()) +
1540
- chalk.red(" cannot be found in the address space !")
1542
+ chalk.cyan(reference.nodeId.toString()) +
1543
+ chalk.red(" cannot be found in the address space !")
1541
1544
  );
1542
1545
  }
1543
1546
  return obj;
@@ -1579,10 +1582,10 @@ function _select_by_browse_name(map: HierarchicalIndexMap, browseName: Qualified
1579
1582
  return [];
1580
1583
  }
1581
1584
 
1582
- function _filter_by_browse_name<T extends BaseNode>(components: T[], browseName: QualifiedNameLike, namespaceIndex?: number): T[] {
1583
- let select: T[] = [];
1585
+ function _filter_by_browse_name(components: BaseNode[], browseName: QualifiedNameLike, namespaceIndex?: number): BaseNode[] {
1586
+ let select: BaseNode[] = [];
1584
1587
  if ((namespaceIndex === null || namespaceIndex === undefined) && typeof browseName === "string") {
1585
- select = components.filter((c: T) => c.browseName.name === browseName);
1588
+ select = components.filter((c: BaseNode) => c.browseName.name === browseName);
1586
1589
  if (select && select.length > 1) {
1587
1590
  warningLog("Multiple children exist with name ", browseName, " please specify a namespace index");
1588
1591
  }
@@ -1592,7 +1595,7 @@ function _filter_by_browse_name<T extends BaseNode>(components: T[], browseName:
1592
1595
  return [];
1593
1596
  }
1594
1597
  select = components.filter(
1595
- (c: T) => c.browseName.name === _browseName.name && c.browseName.namespaceIndex === _browseName.namespaceIndex
1598
+ (c: BaseNode) => c.browseName.name === _browseName.name && c.browseName.namespaceIndex === _browseName.namespaceIndex
1596
1599
  );
1597
1600
  }
1598
1601
  return select;
@@ -1605,7 +1608,11 @@ function _is_massively_used_reference(referenceType: UAReferenceType): boolean {
1605
1608
  return name === "HasTypeDefinition" || name === "HasModellingRule";
1606
1609
  }
1607
1610
 
1608
- function _propagate_ref(this: BaseNode, addressSpace: MinimalistAddressSpace, reference: UAReference): void {
1611
+ function _propagate_ref(
1612
+ this: BaseNode,
1613
+ addressSpace: MinimalistAddressSpace,
1614
+ reference: UAReference
1615
+ ): void {
1609
1616
  // filter out non Hierarchical References
1610
1617
  const referenceType = ReferenceImpl.resolveReferenceType(addressSpace, reference);
1611
1618
 
@@ -1645,7 +1652,7 @@ function _propagate_ref(this: BaseNode, addressSpace: MinimalistAddressSpace, re
1645
1652
  new ReferenceImpl({
1646
1653
  _referenceType: getReferenceType(reference),
1647
1654
  isForward: !reference.isForward,
1648
- node: this,
1655
+ node: this as BaseNode,
1649
1656
  nodeId: this.nodeId,
1650
1657
  referenceType: reference.referenceType
1651
1658
  })
@@ -1757,12 +1764,20 @@ function _filter_by_context(node: BaseNode, references: Reference[], context: Se
1757
1764
  return [];
1758
1765
  }
1759
1766
  */
1760
- function _filter_by_context(node: BaseNode, references: UAReference[], context: ISessionContext): UAReference[] {
1767
+ function _filter_by_context(
1768
+ node: BaseNode,
1769
+ references: UAReference[],
1770
+ context: ISessionContext
1771
+ ): UAReference[] {
1761
1772
  const addressSpace = node.addressSpace;
1762
1773
  return references.filter((reference) => !context.isBrowseAccessRestricted(resolveReferenceNode(addressSpace, reference)));
1763
1774
  }
1764
1775
 
1765
- function _filter_by_nodeClass(this: BaseNode, references: UAReference[], nodeClassMask: number): UAReference[] {
1776
+ function _filter_by_nodeClass(
1777
+ this: BaseNode,
1778
+ references: UAReference[],
1779
+ nodeClassMask: number
1780
+ ): UAReference[] {
1766
1781
  assert(Number.isFinite(nodeClassMask));
1767
1782
  if (nodeClassMask === 0) {
1768
1783
  return references;
@@ -1782,7 +1797,11 @@ function _filter_by_nodeClass(this: BaseNode, references: UAReference[], nodeCla
1782
1797
  });
1783
1798
  }
1784
1799
 
1785
- function _filter_by_userFilter(this: BaseNode, references: UAReference[], context?: ISessionContext): UAReference[] {
1800
+ function _filter_by_userFilter(
1801
+ this: BaseNode,
1802
+ references: UAReference[],
1803
+ context?: ISessionContext
1804
+ ): UAReference[] {
1786
1805
  const addressSpace = this.addressSpace;
1787
1806
  return references.filter((reference: UAReference) => {
1788
1807
  const obj = resolveReferenceNode(addressSpace, reference) as BaseNode;
@@ -916,7 +916,15 @@ function __clone_interfaces_related_references(
916
916
  if (!typeDefinitionNode) {
917
917
  continue;
918
918
  }
919
- if (doTrace) traceLog(extraInfo?.pad(), chalk.blueBright(newParent.browseName.toString(), "-----> Exploring interface ", typeDefinitionNode.browseName.toString()));
919
+ if (doTrace)
920
+ traceLog(
921
+ extraInfo?.pad(),
922
+ chalk.blueBright(
923
+ newParent.browseName.toString(),
924
+ "-----> Exploring interface ",
925
+ typeDefinitionNode.browseName.toString()
926
+ )
927
+ );
920
928
  while (typeDefinitionNode) {
921
929
  // c8 ignore next
922
930
  doTrace &&
@@ -946,7 +954,7 @@ export function _clone_hierarchical_references(
946
954
  ) {
947
955
  __clone_children_references(nodeToClone, newParent, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
948
956
  __clone_organizes_references(nodeToClone, newParent, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
949
- // __clone_interfaces_related_references(nodeToClone, newParent, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
957
+ // __clone_interfaces_related_references(nodeToClone, newParent, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
950
958
  }
951
959
  export function _clone_non_hierarchical_references(
952
960
  nodeToClone: UAObject | UAVariable | UAMethod | UAObjectType | UAVariableType,
@@ -1206,8 +1214,8 @@ function _makeReferenceDescription(addressSpace: IAddressSpace, reference: UARef
1206
1214
  } else {
1207
1215
  const obj2 = obj;
1208
1216
 
1209
- const objOrVar = (obj2.nodeClass === NodeClass.Object || obj2.nodeClass === NodeClass.Variable )
1210
- ? (obj2 as UAVariable | UAObject) : null;
1217
+ const objOrVar =
1218
+ obj2.nodeClass === NodeClass.Object || obj2.nodeClass === NodeClass.Variable ? (obj2 as UAVariable | UAObject) : null;
1211
1219
 
1212
1220
  assert(reference.nodeId, " obj.nodeId");
1213
1221
  data = {
@@ -1,6 +1,3 @@
1
-
2
-
3
-
4
1
  /**
5
2
  * This valueRank indicates whether the Value attribute of the Variable is an array and how many dimensions the array has.
6
3
  * It may have the following values:
@@ -13,7 +10,10 @@
13
10
  * * All DataTypes are considered to be scalar, even if they have array-like semantics like ByteString and String.
14
11
  */
15
12
 
16
- export function checkValueRankCompatibility(actualValueRank: number, baseTypeValueRank: number): { result: boolean, errorMessage?: string } {
13
+ export function checkValueRankCompatibility(
14
+ actualValueRank: number,
15
+ baseTypeValueRank: number
16
+ ): { result: boolean; errorMessage?: string } {
17
17
  const ScalarOrOneDimension = -3;
18
18
  const OneOrMoreDimensions = 0;
19
19
  const AnyDimension = -2;
@@ -21,17 +21,22 @@ export function checkValueRankCompatibility(actualValueRank: number, baseTypeVal
21
21
  const Scalar = -1;
22
22
  const t = (valueRank: number): string => {
23
23
  switch (valueRank) {
24
- case ScalarOrOneDimension: return `ScalarOrOneDimension(${valueRank})`;
25
- case OneOrMoreDimensions: return `OneOrMoreDimensions(${valueRank})`;
26
- case AnyDimension: return `AnyDimension(${valueRank})`;
27
- case OneDimension: return `OneDimension(${valueRank})`;
28
- case Scalar: return `Scalar(${valueRank})`;
24
+ case ScalarOrOneDimension:
25
+ return `ScalarOrOneDimension(${valueRank})`;
26
+ case OneOrMoreDimensions:
27
+ return `OneOrMoreDimensions(${valueRank})`;
28
+ case AnyDimension:
29
+ return `AnyDimension(${valueRank})`;
30
+ case OneDimension:
31
+ return `OneDimension(${valueRank})`;
32
+ case Scalar:
33
+ return `Scalar(${valueRank})`;
29
34
  }
30
35
  if (valueRank < 0) {
31
36
  return `InvalidValueRank(${valueRank})`;
32
37
  }
33
38
  return `${valueRank}`;
34
- }
39
+ };
35
40
  if (actualValueRank < 0) {
36
41
  if (actualValueRank !== Scalar && actualValueRank !== AnyDimension && actualValueRank !== ScalarOrOneDimension) {
37
42
  return {
@@ -46,7 +51,7 @@ export function checkValueRankCompatibility(actualValueRank: number, baseTypeVal
46
51
  if (baseTypeValueRank === OneDimension || baseTypeValueRank > 1) {
47
52
  if (actualValueRank === baseTypeValueRank) {
48
53
  return { result: true };
49
- };
54
+ }
50
55
  return {
51
56
  result: false,
52
57
  errorMessage: `Invalid valueRank: ${t(actualValueRank)}: valueRank can only be identical to base type ${t(baseTypeValueRank)}`
@@ -67,7 +72,8 @@ export function checkValueRankCompatibility(actualValueRank: number, baseTypeVal
67
72
  };
68
73
  }
69
74
  if (baseTypeValueRank === ScalarOrOneDimension) {
70
- if (actualValueRank === OneDimension || actualValueRank === Scalar || actualValueRank === ScalarOrOneDimension) return { result: true };
75
+ if (actualValueRank === OneDimension || actualValueRank === Scalar || actualValueRank === ScalarOrOneDimension)
76
+ return { result: true };
71
77
  return {
72
78
  result: false,
73
79
  errorMessage: `Invalid valueRank: ${t(actualValueRank)}: valueRank can only be identical to base type ${t(ScalarOrOneDimension)} , ${t(Scalar)} or ${t(OneDimension)}.`
@@ -75,5 +81,3 @@ export function checkValueRankCompatibility(actualValueRank: number, baseTypeVal
75
81
  }
76
82
  return { result: false };
77
83
  }
78
-
79
-
@@ -27,11 +27,10 @@
27
27
  // a Client may encounter cases where the value read back from a Server differs from the value that it
28
28
  // wrote to the Server. This difference shall be no more than the difference suggested by this Property
29
29
 
30
+ import type { ModellingRuleType, UAVariable } from "node-opcua-address-space-base";
30
31
  import { assert } from "node-opcua-assert";
31
32
  import { DataType, Variant } from "node-opcua-variant";
32
33
 
33
- import { UAVariable, ModellingRuleType } from "node-opcua-address-space-base";
34
-
35
34
  const definition_Description =
36
35
  "Definition is a vendor - specific," + " human readable string that specifies how the value of this DataItem is calculated.";
37
36
  const valuePrecision_Description = "";
@@ -45,7 +44,7 @@ export function add_dataItem_stuff(variable: UAVariable, options: add_dataItem_s
45
44
  const addressSpace = variable.addressSpace;
46
45
  const namespace = addressSpace.getNamespace(variable.nodeId.namespace);
47
46
 
48
- if (Object.prototype.hasOwnProperty.call(options, "definition") && options.definition !== undefined) {
47
+ if (Object.hasOwn(options, "definition") && options.definition !== undefined) {
49
48
  namespace.addVariable({
50
49
  browseName: { name: "Definition", namespaceIndex: 0 },
51
50
  dataType: "String",
@@ -58,7 +57,7 @@ export function add_dataItem_stuff(variable: UAVariable, options: add_dataItem_s
58
57
  });
59
58
  }
60
59
 
61
- if (Object.prototype.hasOwnProperty.call(options, "valuePrecision") && options.valuePrecision !== undefined) {
60
+ if (Object.hasOwn(options, "valuePrecision") && options.valuePrecision !== undefined) {
62
61
  assert(typeof options.valuePrecision === "number");
63
62
 
64
63
  namespace.addVariable({
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * @module node-opcua-address-space.DataAccess
3
3
  */
4
- import { StatusCodes } from "node-opcua-status-code";
5
- import { StatusCode } from "node-opcua-status-code";
6
- import { Range } from "node-opcua-types";
7
- import { UAVariable } from "node-opcua-address-space-base";
4
+
5
+ import type { UAVariable } from "node-opcua-address-space-base";
8
6
  import { NodeClass } from "node-opcua-data-model";
9
- import { DataValue } from "node-opcua-data-value";
10
- import { Variant } from "node-opcua-variant";
11
- import { UAVariableImpl } from "../ua_variable_impl";
7
+ import type { DataValue } from "node-opcua-data-value";
8
+ import { type StatusCode, StatusCodes } from "node-opcua-status-code";
9
+ import type { Range } from "node-opcua-types";
10
+ import type { Variant } from "node-opcua-variant";
11
+ import type { UAVariableImpl } from "../ua_variable_impl";
12
12
 
13
13
  function validate_value_range(range: Range, variant: Variant) {
14
14
  if (variant.value < range.low || variant.value > range.high) {
@@ -1,19 +1,25 @@
1
1
  /**
2
2
  * @module node-opcua-address-space.DataAccess
3
3
  */
4
+
5
+ import type {
6
+ BindVariableOptions,
7
+ CloneExtraInfo,
8
+ CloneFilter,
9
+ CloneOptions,
10
+ INamespace,
11
+ UAVariable
12
+ } from "node-opcua-address-space-base";
4
13
  import { assert } from "node-opcua-assert";
5
14
  import { VariableTypeIds } from "node-opcua-constants";
6
- import { coerceLocalizedText, LocalizedText } from "node-opcua-data-model";
7
- import { StatusCode, StatusCodes } from "node-opcua-status-code";
8
- import { DataType, VariantArrayType, Variant } from "node-opcua-variant";
9
- import { BindVariableOptions, INamespace, UAVariable, UAProperty } from "node-opcua-address-space-base";
10
-
11
- import { UAMultiStateDiscrete, UAMultiStateDiscrete_Base } from "node-opcua-nodeset-ua";
15
+ import { coerceLocalizedText, type LocalizedText } from "node-opcua-data-model";
16
+ import type { UAMultiStateDiscrete_Base } from "node-opcua-nodeset-ua";
17
+ import { type StatusCode, StatusCodes } from "node-opcua-status-code";
18
+ import { DataType, Variant, VariantArrayType } from "node-opcua-variant";
19
+ import type { AddMultiStateDiscreteOptions } from "../../source/address_space_ts";
20
+ import type { ISetStateOptions } from "../../source/interfaces/i_set_state_options";
12
21
  import { registerNodePromoter } from "../../source/loader/register_node_promoter";
13
22
  import { UAVariableImpl } from "../ua_variable_impl";
14
- import { ISetStateOptions } from "../../source/interfaces/i_set_state_options";
15
-
16
- import { AddMultiStateDiscreteOptions } from "../../source/address_space_ts";
17
23
  import { add_dataItem_stuff } from "./add_dataItem_stuff";
18
24
 
19
25
  export { UAMultiStateDiscrete } from "node-opcua-nodeset-ua";
@@ -27,26 +33,26 @@ export interface UAMultiStateDiscreteEx<T, DT extends DataType> extends UAMultiS
27
33
  checkVariantCompatibility(value: Variant): StatusCode;
28
34
  }
29
35
 
30
- export interface UAMultiStateDiscreteImpl<T, DT extends DataType> {
31
- enumStrings: UAProperty<LocalizedText[], DataType.LocalizedText>;
32
- }
33
36
  /**
34
37
  * @class UAMultiStateDiscrete
35
38
  */
36
- export class UAMultiStateDiscreteImpl<T, DT extends DataType> extends UAVariableImpl implements UAMultiStateDiscreteEx<T, DT> {
39
+ export class UAMultiStateDiscreteImplBase<T, DT extends DataType> extends UAVariableImpl {
40
+ private get $7(): UAMultiStateDiscreteEx<T, DT> {
41
+ return this as unknown as UAMultiStateDiscreteEx<T, DT>;
42
+ }
37
43
  public getValue(): number {
38
44
  return this.readValue().value.value;
39
45
  }
40
46
 
41
47
  public getValueAsString(): string {
42
48
  const index = this.getValue();
43
- const arr = this.enumStrings.readValue().value.value;
49
+ const arr = this.$7.enumStrings.readValue().value.value;
44
50
  assert(Array.isArray(arr));
45
- return arr[index].text ? arr[index].text!.toString() : "????";
51
+ return arr[index].text ? arr[index].text?.toString() : "????";
46
52
  }
47
53
 
48
54
  public getIndex(value: string): number {
49
- const arr = this.enumStrings.readValue().value.value;
55
+ const arr = this.$7.enumStrings.readValue().value.value;
50
56
  assert(Array.isArray(arr));
51
57
  const index = arr.findIndex((a: LocalizedText) => a.text === value);
52
58
  return index;
@@ -56,24 +62,25 @@ export class UAMultiStateDiscreteImpl<T, DT extends DataType> extends UAVariable
56
62
  if (typeof value === "string") {
57
63
  const index = this.getIndex(value);
58
64
  if (index < 0) {
59
- throw new Error("UAMultiStateDiscrete#setValue invalid multi state value provided : " + value);
65
+ throw new Error(`UAMultiStateDiscrete#setValue invalid multi state value provided : ${value}`);
60
66
  }
61
- return this.setValue(index, options);
67
+ this.setValue(index, options);
68
+ return;
62
69
  }
63
- const arrayEnumStrings = this.enumStrings.readValue().value.value;
70
+ const arrayEnumStrings = this.$7.enumStrings.readValue().value.value;
64
71
  if (value >= arrayEnumStrings.length) {
65
- throw new Error("UAMultiStateDiscrete#setValue BadOutOfRange " + value);
72
+ throw new Error(`UAMultiStateDiscrete#setValue BadOutOfRange ${value}`);
66
73
  }
67
- assert(isFinite(value));
68
- return this.setValueFromSource(new Variant({ dataType: DataType.UInt32, value }));
74
+ assert(Number.isFinite(value));
75
+ this.setValueFromSource(new Variant({ dataType: DataType.UInt32, value }));
69
76
  }
70
77
 
71
78
  public checkVariantCompatibility(value: Variant): StatusCode {
72
79
  if (!this._validate_DataType(value.dataType)) {
73
80
  return StatusCodes.BadTypeMismatch;
74
81
  }
75
- if (this.enumStrings) {
76
- const arrayEnumStrings = this.enumStrings.readValue().value.value;
82
+ if (this.$7.enumStrings) {
83
+ const arrayEnumStrings = this.$7.enumStrings.readValue().value.value;
77
84
  // MultiStateDiscreteType
78
85
  assert(value.dataType === DataType.UInt32);
79
86
  if (value.value >= arrayEnumStrings.length) {
@@ -87,11 +94,20 @@ export class UAMultiStateDiscreteImpl<T, DT extends DataType> extends UAVariable
87
94
  /* empty */
88
95
  }
89
96
 
90
- public clone<T, DT extends DataType>(options1: any, optionalFilter: any, extraInfo: any): UAMultiStateDiscreteImpl<T, DT> {
97
+ public clone(
98
+ options1: CloneOptions,
99
+ optionalFilter?: CloneFilter,
100
+ extraInfo?: CloneExtraInfo
101
+ ): UAMultiStateDiscreteImpl<T, DT> {
91
102
  const variable1 = UAVariableImpl.prototype.clone.call(this, options1, optionalFilter, extraInfo);
92
103
  return promoteToMultiStateDiscrete(variable1);
93
104
  }
94
105
  }
106
+ export type UAMultiStateDiscreteImpl<T, DT extends DataType> = UAMultiStateDiscreteImplBase<T, DT> & UAMultiStateDiscreteEx<T, DT>;
107
+ export const UAMultiStateDiscreteImpl = UAMultiStateDiscreteImplBase as unknown as new <
108
+ T,
109
+ DT extends DataType
110
+ >() => UAMultiStateDiscreteImpl<T, DT>;
95
111
 
96
112
  export function promoteToMultiStateDiscrete<T, DT extends DataType>(node: UAVariable): UAMultiStateDiscreteImpl<T, DT> {
97
113
  if (node instanceof UAMultiStateDiscreteImpl) {
@@ -116,8 +132,8 @@ export function _addMultiStateDiscrete<T, DT extends DataType>(
116
132
  options: AddMultiStateDiscreteOptions
117
133
  ): UAMultiStateDiscreteImpl<T, DT> {
118
134
  const addressSpace = namespace.addressSpace;
119
- assert(Object.prototype.hasOwnProperty.call(options, "enumStrings"));
120
- assert(!Object.prototype.hasOwnProperty.call(options, "ValuePrecision"));
135
+ assert(Object.hasOwn(options, "enumStrings"));
136
+ assert(!Object.hasOwn(options, "ValuePrecision"));
121
137
 
122
138
  const multiStateDiscreteType = addressSpace.findVariableType("MultiStateDiscreteType");
123
139
  if (!multiStateDiscreteType) {
@@ -153,7 +169,7 @@ export function _addMultiStateDiscrete<T, DT extends DataType>(
153
169
  return coerceLocalizedText(value);
154
170
  });
155
171
 
156
- const enumStringsNode = namespace.addVariable({
172
+ const _enumStringsNode = namespace.addVariable({
157
173
  accessLevel: "CurrentRead", // | CurrentWrite",
158
174
  browseName: { name: "EnumStrings", namespaceIndex: 0 },
159
175
  dataType: "LocalizedText",