node-opcua-address-space 2.170.1 → 2.172.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 +4 -4
  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 +7 -7
  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 +64 -67
  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 +23 -31
  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 +15 -16
  439. package/src/nodeset_tools/dump_to_bsd.ts +27 -22
  440. package/src/nodeset_tools/nodeset_to_xml.ts +95 -114
  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
@@ -1,28 +1,36 @@
1
- /**
1
+ /**
2
2
  * @module node-opcua-address-space
3
3
  */
4
- import { assert } from "node-opcua-assert";
5
4
 
5
+ import type {
6
+ BaseNode,
7
+ BindVariableOptions,
8
+ INamespace,
9
+ ISessionContext,
10
+ UAReference,
11
+ UAVariable
12
+ } from "node-opcua-address-space-base";
13
+ import { assert } from "node-opcua-assert";
6
14
  import { VariableTypeIds } from "node-opcua-constants";
7
- import { BrowseDirection, coerceLocalizedText, LocalizedText, LocalizedTextLike } from "node-opcua-data-model";
8
- import { DataValueT } from "node-opcua-data-value";
9
- import { NodeId, resolveNodeId } from "node-opcua-nodeid";
10
- import { sameNodeId } from "node-opcua-nodeid";
11
- import { StatusCodes, StatusCode, StatusCodeCallback } from "node-opcua-status-code";
12
- import { Variant, VariantLike, VariantT } from "node-opcua-variant";
13
- import { DataType } from "node-opcua-variant";
14
- import { BaseNode, BindVariableOptions, INamespace, UAReference, UAVariable, ISessionContext } from "node-opcua-address-space-base";
15
- import { NumericRange } from "node-opcua-numeric-range";
16
- import { QualifiedNameLike } from "node-opcua-data-model";
17
-
15
+ import {
16
+ BrowseDirection,
17
+ coerceLocalizedText,
18
+ type LocalizedText,
19
+ type LocalizedTextLike,
20
+ type QualifiedNameLike
21
+ } from "node-opcua-data-model";
22
+ import type { DataValueT } from "node-opcua-data-value";
23
+ import { type NodeId, resolveNodeId, sameNodeId } from "node-opcua-nodeid";
24
+ import type { NumericRange } from "node-opcua-numeric-range";
25
+ import { type StatusCode, type StatusCodeCallback, StatusCodes } from "node-opcua-status-code";
26
+ import { DataType, Variant, type VariantLike, type VariantT } from "node-opcua-variant";
27
+ import type { AddTwoStateVariableOptions } from "../../source/address_space_ts";
28
+ import type { ISetStateOptions } from "../../source/interfaces/i_set_state_options";
18
29
  // public interfaces
19
30
  import { registerNodePromoter } from "../../source/loader/register_node_promoter";
20
- import { AddTwoStateVariableOptions } from "../../source/address_space_ts";
21
- import { UATwoStateVariableEx } from "../../source/ua_two_state_variable_ex";
31
+ import type { UATwoStateVariableEx } from "../../source/ua_two_state_variable_ex";
22
32
  // private types
23
33
  import { UAVariableImpl, UAVariableImplT } from "../ua_variable_impl";
24
- import { ISetStateOptions } from "../../source/interfaces/i_set_state_options";
25
-
26
34
 
27
35
  const hasTrueSubState_ReferenceTypeNodeId = resolveNodeId("HasTrueSubState");
28
36
  const hasFalseSubState_ReferenceTypeNodeId = resolveNodeId("HasFalseSubState");
@@ -64,9 +72,8 @@ function _updateTransitionTime(node: UATwoStateVariableEx, _subState?: UAVariabl
64
72
  }
65
73
  }
66
74
 
67
- function _updateEffectiveTransitionTime(node: UATwoStateVariableImpl,options?: ISetStateOptions) {
75
+ function _updateEffectiveTransitionTime(node: UATwoStateVariableImpl, options?: ISetStateOptions) {
68
76
  if (node.effectiveTransitionTime) {
69
-
70
77
  const effectiveTransitionTime = options?.effectiveTransitionTime || new Date();
71
78
 
72
79
  // because subStateNode ",subStateNode.browseName.toString());
@@ -77,7 +84,7 @@ function _updateEffectiveTransitionTime(node: UATwoStateVariableImpl,options?: I
77
84
  }
78
85
  }
79
86
 
80
- function _getEffectiveDisplayName<T, DT extends DataType>(
87
+ function _getEffectiveDisplayName<_T, _DT extends DataType>(
81
88
  node: UATwoStateVariableImpl
82
89
  ): DataValueT<LocalizedText, DataType.LocalizedText> {
83
90
  const humanReadableString = _getHumanReadableString(node);
@@ -92,7 +99,7 @@ function _getEffectiveDisplayName<T, DT extends DataType>(
92
99
  } else {
93
100
  subStateNodes = node.findReferencesExAsObject("HasFalseSubState", BrowseDirection.Forward);
94
101
  }
95
- const states = subStateNodes.forEach((n: any) => {
102
+ const _states = subStateNodes.forEach((_n: any) => {
96
103
  // todo happen
97
104
  });
98
105
 
@@ -133,7 +140,7 @@ export function _install_TwoStateVariable_machinery(
133
140
  assert(node.minimumSamplingInterval === 0);
134
141
  assert(node.typeDefinitionObj.browseName.toString() === "TwoStateVariableType");
135
142
  assert(node.dataTypeObj.browseName.toString() === "LocalizedText");
136
- assert(Object.prototype.hasOwnProperty.call(node, "valueRank") && (node.valueRank === -1 || node.valueRank === 0));
143
+ assert(Object.hasOwn(node, "valueRank") && (node.valueRank === -1 || node.valueRank === 0));
137
144
 
138
145
  // promote node into a UATwoStateVariable
139
146
  const _node = promoteToTwoStateVariable(node);
@@ -196,10 +203,6 @@ export class UATwoStateVariableImpl extends UAVariableImplT<LocalizedText, DataT
196
203
  private _trueState?: string;
197
204
  private _falseState?: string;
198
205
 
199
- public constructor(opts: any) {
200
- super(opts);
201
- }
202
-
203
206
  get isFalseSubStateOf(): UATwoStateVariableEx {
204
207
  return super.isFalseSubStateOf as UATwoStateVariableEx;
205
208
  }
@@ -219,7 +222,7 @@ export class UATwoStateVariableImpl extends UAVariableImplT<LocalizedText, DataT
219
222
  value: coerceLocalizedText(options.falseState)
220
223
  });
221
224
  } else {
222
- this._trueState = coerceLocalizedText(options.trueState)!.text!;
225
+ this._trueState = coerceLocalizedText(options.trueState)?.text!;
223
226
  }
224
227
  if (this.trueState) {
225
228
  this.trueState.setValueFromSource({
@@ -227,7 +230,7 @@ export class UATwoStateVariableImpl extends UAVariableImplT<LocalizedText, DataT
227
230
  value: coerceLocalizedText(options.trueState)
228
231
  });
229
232
  } else {
230
- this._falseState = coerceLocalizedText(options.falseState)!.text!;
233
+ this._falseState = coerceLocalizedText(options.falseState)?.text!;
231
234
  }
232
235
  }
233
236
 
@@ -264,7 +267,7 @@ export class UATwoStateVariableImpl extends UAVariableImplT<LocalizedText, DataT
264
267
  },
265
268
  StatusCodes.Good
266
269
  );
267
- } else if (Object.prototype.hasOwnProperty.call(options.value, "dataType")) {
270
+ } else if (Object.hasOwn(options.value, "dataType")) {
268
271
  assert((options.value as VariantLike).dataType === DataType.Boolean);
269
272
  this.id.setValueFromSource(options.value as VariantLike, StatusCodes.Good);
270
273
  } else {
@@ -312,7 +315,7 @@ export class UATwoStateVariableImpl extends UAVariableImplT<LocalizedText, DataT
312
315
  */
313
316
  public setValue(boolValue: boolean, options?: ISetStateOptions): void {
314
317
  assert(typeof boolValue === "boolean");
315
- const dataValue = this.id!.readValue();
318
+ const dataValue = this.id?.readValue();
316
319
  const oldValue = dataValue.value.value;
317
320
  if (dataValue.statusCode.isGood() && boolValue === oldValue) {
318
321
  return; // nothing to do
@@ -326,7 +329,7 @@ export class UATwoStateVariableImpl extends UAVariableImplT<LocalizedText, DataT
326
329
  /**
327
330
  */
328
331
  public getValue(): boolean {
329
- const dataValue = this.id!.readValue();
332
+ const dataValue = this.id?.readValue();
330
333
  assert(dataValue.statusCode.isGood());
331
334
  assert(dataValue.value.dataType === DataType.Boolean);
332
335
  return dataValue.value.value;
@@ -2,15 +2,21 @@
2
2
  * @module node-opcua-address-space
3
3
  */
4
4
 
5
+ import type {
6
+ BaseNode,
7
+ BaseNodeEvents,
8
+ UADataType,
9
+ UAObjectType,
10
+ UAReference,
11
+ UAReferenceType,
12
+ UAVariableType
13
+ } from "node-opcua-address-space-base";
5
14
  import { assert } from "node-opcua-assert";
6
- import { NodeId, NodeIdLike, resolveNodeId } from "node-opcua-nodeid";
7
- import { sameNodeId } from "node-opcua-nodeid";
8
15
  import { NodeClass } from "node-opcua-data-model";
9
- import { BaseNode, UADataType, UAObjectType, UAReference, UAReferenceType, UAVariableType } from "node-opcua-address-space-base";
10
-
16
+ import { type NodeId, type NodeIdLike, resolveNodeId, sameNodeId } from "node-opcua-nodeid";
17
+ import type { BaseNodeImpl } from "./base_node_impl";
11
18
  import { BaseNode_getCache } from "./base_node_private";
12
19
  import { ReferenceImpl } from "./reference_impl";
13
- import { BaseNodeImpl } from "./base_node_impl";
14
20
 
15
21
  const HasSubTypeNodeId = resolveNodeId("HasSubtype");
16
22
 
@@ -20,7 +26,11 @@ function _filterSubType(reference: UAReference) {
20
26
 
21
27
  export type BaseNodeConstructor<T extends BaseNode> = new () => T;
22
28
 
23
- function _slow_isSubtypeOf<T extends UAType>(this: T, Class: typeof BaseNodeImpl, baseType: T | NodeIdLike): boolean {
29
+ function _slow_isSubtypeOf<T extends UAType>(
30
+ this: T,
31
+ Class: typeof BaseNodeImpl,
32
+ baseType: T | NodeIdLike
33
+ ): boolean {
24
34
  if (!(baseType instanceof Class)) {
25
35
  const node = this.addressSpace.findNode(baseType as NodeIdLike);
26
36
  if (!node || !(node instanceof Class)) {
@@ -42,10 +52,10 @@ function _slow_isSubtypeOf<T extends UAType>(this: T, Class: typeof BaseNodeImpl
42
52
 
43
53
  for (const subType1 of subTypes) {
44
54
  const subTypeId = subType1.nodeId;
45
- const subTypeNode = this.addressSpace.findNode(subTypeId) as any as T;
55
+ const subTypeNode = this.addressSpace.findNode(subTypeId) as unknown as T;
46
56
  // c8 ignore next
47
57
  if (!subTypeNode) {
48
- throw new Error("Cannot find object with nodeId " + subTypeId.toString());
58
+ throw new Error(`Cannot find object with nodeId ${subTypeId.toString()}`);
49
59
  }
50
60
  if (sameNodeId(subTypeNode.nodeId, baseType.nodeId)) {
51
61
  return true;
@@ -60,10 +70,9 @@ function _slow_isSubtypeOf<T extends UAType>(this: T, Class: typeof BaseNodeImpl
60
70
 
61
71
  export type MemberFuncValue<T, P, R> = (this: T, param: P) => R;
62
72
 
73
+ const g_WeakMap = new WeakMap<object, Map<string, unknown>>();
63
74
 
64
- const g_WeakMap = new WeakMap<Object, Map<string, unknown>>();
65
-
66
- export function wipeMemorizedStuff(node: Object) {
75
+ export function wipeMemorizedStuff(node: object) {
67
76
  if (g_WeakMap.has(node)) {
68
77
  g_WeakMap.delete(node);
69
78
  }
@@ -71,40 +80,46 @@ export function wipeMemorizedStuff(node: Object) {
71
80
 
72
81
  // http://jsperf.com/underscore-js-memoize-refactor-test
73
82
  // http://addyosmani.com/blog/faster-javascript-memoization/
74
- function wrap_memoize<T, P, R>(
83
+ function wrap_memoize<T extends object, P, R>(
75
84
  func: MemberFuncValue<T, P, R>,
76
- hashFunc?: (this: T, param: any) => string
85
+ hashFunc?: (this: T, param: P) => string
77
86
  ): MemberFuncValue<T, P, R> {
78
- if (undefined === hashFunc) {
79
- hashFunc = (_p: T) => (_p as any).toString();
80
- }
81
- return function memoize(this: any, param: any) {
82
- const self = this;
83
- if (!g_WeakMap.has(self)) {
84
- g_WeakMap.set(self,new Map());
87
+ const effectiveHashFunc: (this: T, param: P) => string =
88
+ hashFunc ??
89
+ function (this: T, param: P) {
90
+ return (param as unknown as object).toString();
91
+ };
92
+ return function memoize(this: T, param: P): R {
93
+ let memoMap = g_WeakMap.get(this) as Map<string, R> | undefined;
94
+ if (!memoMap) {
95
+ memoMap = new Map<string, R>();
96
+ g_WeakMap.set(this, memoMap as Map<string, unknown>);
85
97
  }
86
- const memoMap = g_WeakMap.get(self)!;
87
98
 
88
- const hash = hashFunc!.call(this, param);
99
+ const hash = effectiveHashFunc.call(this, param);
89
100
  if (memoMap.has(hash)) {
90
101
  return memoMap.get(hash) as R;
91
102
  }
92
103
  const cache_value = func.call(this, param);
93
- memoMap.set(hash,cache_value);
94
- return cache_value as R;
104
+ memoMap.set(hash, cache_value);
105
+ return cache_value;
95
106
  };
96
107
  }
97
108
 
98
- function hashBaseNode(e: BaseNode): string {
99
- return e.nodeId.toString();
109
+ function hashBaseNode(e: BaseNode | NodeIdLike): string {
110
+ if (e && typeof e === "object" && "nodeId" in e) {
111
+ return (e as BaseNode).nodeId.toString();
112
+ }
113
+ return resolveNodeId(e as NodeIdLike).toString();
100
114
  }
101
115
 
102
116
  export type IsSubtypeOfFunc<T extends UAType> = (this: T, baseType: T) => boolean;
103
117
 
104
118
  export type UAType = UAReferenceType | UADataType | UAObjectType | UAVariableType;
105
119
 
106
- export function construct_isSubtypeOf<T extends UAType>(Class: typeof BaseNodeImpl): IsSubtypeOfFunc<T> {
107
-
120
+ export function construct_isSubtypeOf<T extends UAType>(
121
+ Class: typeof BaseNodeImpl
122
+ ): IsSubtypeOfFunc<T> {
108
123
  return wrap_memoize(function (this: T, baseType: T | NodeIdLike): boolean {
109
124
  if (!(baseType instanceof Class)) {
110
125
  throw new Error(
@@ -117,7 +132,7 @@ export function construct_isSubtypeOf<T extends UAType>(Class: typeof BaseNodeIm
117
132
  );
118
133
  }
119
134
  if (!(this instanceof Class)) {
120
- throw new Error("expecting this to be " + Class.name + " but got " + baseType.toString());
135
+ throw new Error(`expecting this to be ${Class.name} but got ${baseType.toString()}`);
121
136
  }
122
137
  return _slow_isSubtypeOf.call(this, Class, baseType as T);
123
138
  }, hashBaseNode);
@@ -137,16 +152,16 @@ export function get_subtypeOf<T extends BaseNode>(this: T): NodeId | null {
137
152
  return s ? s.nodeId : null;
138
153
  }
139
154
 
140
- export function get_subtypeOfObj(this: BaseNode): BaseNode | null {
155
+ export function get_subtypeOfObj<T extends BaseNode>(this: T): T | null {
141
156
  const _cache = BaseNode_getCache(this);
142
157
 
143
- if (_cache._subtypeOfObj == undefined) {
158
+ if (_cache._subtypeOfObj === undefined) {
144
159
  const is_subtype_of_ref = this.findReference("HasSubtype", false);
145
- if (is_subtype_of_ref ) {
160
+ if (is_subtype_of_ref) {
146
161
  _cache._subtypeOfObj = ReferenceImpl.resolveReferenceNode(this.addressSpace, is_subtype_of_ref);
147
162
  } else {
148
163
  _cache._subtypeOfObj = null;
149
164
  }
150
165
  }
151
- return _cache._subtypeOfObj;
166
+ return (_cache._subtypeOfObj as T) || null;
152
167
  }
@@ -1,4 +1,4 @@
1
- import { UAMethod, UAObjectType } from "node-opcua-address-space-base";
1
+ import type { UAMethod, UAObjectType } from "node-opcua-address-space-base";
2
2
 
3
3
  export interface UAConditionType extends UAObjectType {
4
4
  disable: UAMethod;
@@ -37,7 +37,6 @@ import { construct_isSubtypeOf, get_subtypeOf, get_subtypeOfObj } from "./tool_i
37
37
  const debugLog = make_debugLog("DATA_TYPE");
38
38
  const doDebug = checkDebugFlag("DATA_TYPE");
39
39
 
40
-
41
40
  export interface StructureFieldOptionsEx extends StructureFieldOptions {
42
41
  allowSubTypes: boolean;
43
42
  }
@@ -374,24 +373,24 @@ export function DataType_toString(this: UADataTypeImpl, options: ToStringOption)
374
373
 
375
374
  options.add(
376
375
  options.padding +
377
- chalk.yellow(" binaryEncodingNodeId: ") +
378
- (this.binaryEncodingNodeId ? this.binaryEncodingNodeId.toString() : "<none>")
376
+ chalk.yellow(" binaryEncodingNodeId: ") +
377
+ (this.binaryEncodingNodeId ? this.binaryEncodingNodeId.toString() : "<none>")
379
378
  );
380
379
  options.add(
381
380
  options.padding +
382
- chalk.yellow(" xmlEncodingNodeId : ") +
383
- (this.xmlEncodingNodeId ? this.xmlEncodingNodeId.toString() : "<none>")
381
+ chalk.yellow(" xmlEncodingNodeId : ") +
382
+ (this.xmlEncodingNodeId ? this.xmlEncodingNodeId.toString() : "<none>")
384
383
  );
385
384
  options.add(
386
385
  options.padding +
387
- chalk.yellow(" jsonEncodingNodeId : ") +
388
- (this.jsonEncodingNodeId ? this.jsonEncodingNodeId.toString() : "<none>")
386
+ chalk.yellow(" jsonEncodingNodeId : ") +
387
+ (this.jsonEncodingNodeId ? this.jsonEncodingNodeId.toString() : "<none>")
389
388
  );
390
389
  if (this.subtypeOfObj) {
391
390
  options.add(
392
391
  options.padding +
393
- chalk.yellow(" subtypeOfObj : ") +
394
- (this.subtypeOfObj ? this.subtypeOfObj.browseName.toString() : "")
392
+ chalk.yellow(" subtypeOfObj : ") +
393
+ (this.subtypeOfObj ? this.subtypeOfObj.browseName.toString() : "")
395
394
  );
396
395
  }
397
396
  // references
@@ -435,10 +434,10 @@ function makeStructureDefinition(
435
434
  ? StructureType.UnionWithSubtypedValues
436
435
  : StructureType.Union
437
436
  : hasOptionalFields
438
- ? StructureType.StructureWithOptionalFields
439
- : hasSubtypedFields
440
- ? StructureType.StructureWithSubtypedValues
441
- : StructureType.Structure;
437
+ ? StructureType.StructureWithOptionalFields
438
+ : hasSubtypedFields
439
+ ? StructureType.StructureWithSubtypedValues
440
+ : StructureType.Structure;
442
441
 
443
442
  // note: https://reference.opcfoundation.org/Core/Part3/v105/docs/8.51
444
443
  // field.isOptional has a special behavior depending on the structure type
@@ -15,6 +15,7 @@ import {
15
15
  type MethodFunctorC,
16
16
  makeDefaultCloneExtraInfo,
17
17
  type UAMethod,
18
+ type UAMethodEvents,
18
19
  type UAObject,
19
20
  type UAObjectType,
20
21
  type UAVariable
@@ -31,7 +32,7 @@ import { type CallMethodResultOptions, PermissionType } from "node-opcua-types";
31
32
  import { DataType, Variant, type VariantLike } from "node-opcua-variant";
32
33
  import type { SessionContext } from "../source/session_context";
33
34
  import type { AddressSpacePrivate } from "./address_space_private";
34
- import { BaseNodeImpl } from "./base_node_impl";
35
+ import { BaseNodeImpl, type InternalBaseNodeOptions } from "./base_node_impl";
35
36
  import { _clone } from "./base_node_private";
36
37
  import { _handle_hierarchy_parent } from "./namespace_impl";
37
38
 
@@ -40,10 +41,14 @@ const debugLog = make_debugLog(__filename);
40
41
  const errorLog = make_errorLog(__filename);
41
42
 
42
43
  function default_check_valid_argument(arg: unknown): boolean {
43
- return (arg as any) instanceof Argument;
44
+ return (arg as object) instanceof Argument;
44
45
  }
45
46
 
46
- export class UAMethodImpl extends BaseNodeImpl implements UAMethod {
47
+ export interface IMethodOptons extends InternalBaseNodeOptions {
48
+ value: unknown;
49
+ methodDeclarationId: NodeId;
50
+ }
51
+ export class UAMethodImpl extends BaseNodeImpl<UAMethodEvents> implements UAMethod {
47
52
  public static checkValidArgument(args: unknown): boolean {
48
53
  return default_check_valid_argument(args);
49
54
  }
@@ -58,13 +63,13 @@ export class UAMethodImpl extends BaseNodeImpl implements UAMethod {
58
63
  return super.parent as UAObject;
59
64
  }
60
65
 
61
- public value?: any;
66
+ public value?: unknown;
62
67
  public methodDeclarationId: NodeId;
63
68
  public _getExecutableFlag?: (this: UAMethod, context: ISessionContext | null) => boolean;
64
69
 
65
70
  public _asyncExecutionFunction?: MethodFunctor;
66
71
 
67
- constructor(options: any) {
72
+ constructor(options: IMethodOptons) {
68
73
  super(options);
69
74
  this.value = options.value;
70
75
  this.methodDeclarationId = options.methodDeclarationId;
@@ -175,11 +180,11 @@ export class UAMethodImpl extends BaseNodeImpl implements UAMethod {
175
180
  if (object.nodeClass !== NodeClass.Object && object.nodeClass !== NodeClass.ObjectType) {
176
181
  warningLog(
177
182
  "Method " +
178
- this.nodeId.toString() +
179
- " " +
180
- this.browseName.toString() +
181
- " called for a node that is not a Object/ObjectType but " +
182
- NodeClass[context.object?.nodeClass as number]
183
+ this.nodeId.toString() +
184
+ " " +
185
+ this.browseName.toString() +
186
+ " called for a node that is not a Object/ObjectType but " +
187
+ NodeClass[context.object?.nodeClass as number]
183
188
  );
184
189
  return callback(null, { statusCode: StatusCodes.BadNodeIdInvalid });
185
190
  }
@@ -264,7 +269,7 @@ export class UAMethodImpl extends BaseNodeImpl implements UAMethod {
264
269
 
265
270
  // ── afterCall event ──
266
271
  try {
267
- this.emit("afterCall", context, coercedInputArguments, callMethodResult);
272
+ (this as UAMethod).emit("afterCall", context, coercedInputArguments, callMethodResult);
268
273
  } catch (afterCallErr) {
269
274
  if (afterCallErr instanceof Error) {
270
275
  warningLog(chalk.red("ERR in afterCall listener"), afterCallErr.message);
@@ -314,7 +319,7 @@ export class UAMethodImpl extends BaseNodeImpl implements UAMethod {
314
319
  clonedMethod._getExecutableFlag = this._getExecutableFlag;
315
320
 
316
321
  if (options.componentOf) {
317
- const m = options.componentOf.getMethodByName(clonedMethod.browseName.name!);
322
+ const m = options.componentOf.getMethodByName(clonedMethod.browseName.name || "");
318
323
  assert(m);
319
324
  }
320
325
  return clonedMethod as UAMethod;
@@ -1,48 +1,50 @@
1
1
  /**
2
2
  * @module node-opcua-address-space
3
3
  */
4
- import chalk from "chalk";
5
4
 
5
+ import chalk from "chalk";
6
+ import {
7
+ type BaseNode,
8
+ type CloneExtraInfo,
9
+ type CloneFilter,
10
+ type CloneOptions,
11
+ defaultCloneFilter,
12
+ EventNotifierFlags,
13
+ type EventTypeLike,
14
+ type IEventData,
15
+ type ISessionContext,
16
+ type ListenerSignature,
17
+ makeDefaultCloneExtraInfo,
18
+ type RaiseEventData,
19
+ type UAEventType,
20
+ type UAMethod,
21
+ type UAObject,
22
+ type UAObjectEvents,
23
+ type UAObjectType
24
+ } from "node-opcua-address-space-base";
6
25
  import { assert } from "node-opcua-assert";
7
26
  import { isValidByte } from "node-opcua-basic-types";
8
- import { NodeClass, type QualifiedNameLike, type QualifiedNameOptions } from "node-opcua-data-model";
9
- import { AttributeIds } from "node-opcua-data-model";
27
+ import { AttributeIds, NodeClass, type QualifiedNameLike, type QualifiedNameOptions } from "node-opcua-data-model";
10
28
  import { DataValue, type DataValueLike } from "node-opcua-data-value";
11
29
  import { getCurrentClock } from "node-opcua-date-time";
30
+ import { make_errorLog } from "node-opcua-debug";
12
31
  import { NodeId } from "node-opcua-nodeid";
13
32
  import type { NumericRange } from "node-opcua-numeric-range";
14
33
  import { StatusCodes } from "node-opcua-status-code";
15
34
  import { DataType } from "node-opcua-variant";
16
- import {
17
- type EventTypeLike,
18
- type RaiseEventData,
19
- type ISessionContext,
20
- type UAMethod,
21
- type UAObject,
22
- type UAObjectType,
23
- type CloneOptions,
24
- type CloneFilter,
25
- type CloneExtraInfo,
26
- type BaseNode,
27
- type UAEventType,
28
- type IEventData,
29
- defaultCloneFilter,
30
- makeDefaultCloneExtraInfo,
31
- EventNotifierFlags
32
- } from "node-opcua-address-space-base";
33
- import { make_errorLog } from "node-opcua-debug";
34
-
35
+ import { apply_condition_refresh, type ConditionRefreshCache } from "./apply_condition_refresh";
35
36
  import { BaseNodeImpl, type InternalBaseNodeOptions } from "./base_node_impl";
36
37
  import { _clone, ToStringBuilder, UAObject_toString } from "./base_node_private";
37
- import { apply_condition_refresh, type ConditionRefreshCache } from "./apply_condition_refresh";
38
38
 
39
39
  const errorLog = make_errorLog(__filename);
40
40
 
41
- export class UAObjectImpl extends BaseNodeImpl implements UAObject {
41
+ export class UAObjectImpl<T extends UAObjectEvents & ListenerSignature<T> = UAObjectEvents>
42
+ extends BaseNodeImpl<T>
43
+ implements UAObject<T>
44
+ {
42
45
  private _eventNotifier: EventNotifierFlags;
43
46
  public readonly nodeClass = NodeClass.Object;
44
47
  public get eventNotifier(): EventNotifierFlags {
45
-
46
48
  // ensure eventNotifier is set if the node has some event
47
49
 
48
50
  if (!this._eventNotifier) {
@@ -105,12 +107,12 @@ export class UAObjectImpl extends BaseNodeImpl implements UAObject {
105
107
  options = {
106
108
  eventNotifier: this.eventNotifier,
107
109
  symbolicName: this.symbolicName || undefined,
108
- ...options,
110
+ ...options
109
111
  };
110
112
 
111
113
  const cloneObject = _clone(
112
114
  this,
113
- UAObjectImpl,
115
+ UAObjectImpl<T>,
114
116
  options,
115
117
  optionalFilter || defaultCloneFilter,
116
118
  extraInfo || makeDefaultCloneExtraInfo(this)
@@ -130,7 +132,7 @@ export class UAObjectImpl extends BaseNodeImpl implements UAObject {
130
132
  public getMethodByName(methodName: QualifiedNameOptions): UAMethod | null;
131
133
  public getMethodByName(methodName: string, namespaceIndex?: number): UAMethod | null;
132
134
  public getMethodByName(methodName: QualifiedNameLike, namespaceIndex?: number): UAMethod | null {
133
- return super.getMethodByName(methodName as any, namespaceIndex);
135
+ return super.getMethodByName(methodName as string, namespaceIndex);
134
136
  }
135
137
 
136
138
  public getMethods(): UAMethod[] {
@@ -150,7 +152,7 @@ export class UAObjectImpl extends BaseNodeImpl implements UAObject {
150
152
  if (typeof eventType === "string") {
151
153
  const eventTypeFound = addressSpace.findEventType(eventType);
152
154
  if (!eventTypeFound) {
153
- throw new Error("raiseEvent: eventType cannot find event Type " + eventType.toString());
155
+ throw new Error(`raiseEvent: eventType cannot find event Type ${eventType.toString()}`);
154
156
  }
155
157
  eventType = eventTypeFound;
156
158
  if (!eventType || eventType.nodeClass !== NodeClass.ObjectType) {
@@ -161,7 +163,7 @@ export class UAObjectImpl extends BaseNodeImpl implements UAObject {
161
163
  if (!eventTypeFound) {
162
164
  throw new Error(`raiseEvent: eventType cannot find event Type ${eventType.toString()}`);
163
165
  }
164
- eventType = eventTypeFound!;
166
+ eventType = eventTypeFound;
165
167
  if (!eventType || eventType.nodeClass !== NodeClass.ObjectType) {
166
168
  throw new Error(`eventType must exist and be an UAObjectType: ${eventType.toString()}`);
167
169
  }
@@ -179,7 +181,7 @@ export class UAObjectImpl extends BaseNodeImpl implements UAObject {
179
181
  eventTypeNode = addressSpace.findEventType(eventType as UAEventType) as UAEventType;
180
182
  const _baseEventType = addressSpace.findEventType("BaseEventType");
181
183
 
182
- data.$eventDataSource =eventTypeNode;
184
+ data.$eventDataSource = eventTypeNode;
183
185
  data.sourceNode = data.sourceNode || { dataType: DataType.NodeId, value: this.nodeId };
184
186
 
185
187
  const eventData1 = addressSpace.constructEventData(eventTypeNode, data);
@@ -190,9 +192,9 @@ export class UAObjectImpl extends BaseNodeImpl implements UAObject {
190
192
  public _bubble_up_event(eventData: IEventData): void {
191
193
  const addressSpace = this.addressSpace;
192
194
 
193
- const queue: any[] = [];
195
+ const queue: BaseNode[] = [];
194
196
  // walk up the hasNotify / hasEventSource chain
195
- const m: any = {};
197
+ const m: Record<string, BaseNode> = {};
196
198
 
197
199
  // all events are notified to the server object
198
200
  // emit on server object
@@ -222,6 +224,9 @@ export class UAObjectImpl extends BaseNodeImpl implements UAObject {
222
224
 
223
225
  while (queue.length) {
224
226
  const obj = queue.pop();
227
+ if (!obj) {
228
+ continue;
229
+ }
225
230
  // emit on object
226
231
  obj.emit("event", eventData);
227
232