node-opcua-address-space 2.183.0 → 2.184.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 (747) hide show
  1. package/api/helpers/adjust_browse_direction.ts +1 -1
  2. package/api/helpers/argument_list.ts +9 -9
  3. package/api/helpers/coerce_enum_value.ts +1 -0
  4. package/api/helpers/dump_tools.ts +1 -1
  5. package/api/index.ts +2 -1
  6. package/api/interfaces/alarms_and_conditions/deviation_stuff.ts +30 -0
  7. package/api/interfaces/data_access/ua_multistate_discrete_ex.ts +1 -1
  8. package/api/interfaces/nodeset_loader_options.ts +17 -0
  9. package/api/loader/decode_xml_extension_object.ts +1 -1
  10. package/api/loader/ensure_datatype_extracted.ts +73 -37
  11. package/api/loader/generateAddressSpaceRaw.ts +32 -22
  12. package/api/loader/load_nodeset2.ts +2 -2
  13. package/api/loader/namespace_post_step.ts +1 -1
  14. package/api/loader/narrow_instance_datatypes.ts +22 -9
  15. package/api/loader/nodeset_image_codec.ts +26 -12
  16. package/api/loader/nodeset_record_applier.ts +1 -1
  17. package/api/loader/nodeset_xml_producer.ts +8 -6
  18. package/api/loader/parsers/extension_object_parser.ts +3 -3
  19. package/api/loader/register_node_promoter.ts +10 -2
  20. package/api/pseudo_session.ts +1 -1
  21. package/bin/{nodeset_equivalence.js → nodeset_equivalence.cjs} +1 -1
  22. package/bin/{opcua-nodeset-image.js → opcua-nodeset-image.cjs} +1 -1
  23. package/bin/{opcua-nodeset-live.js → opcua-nodeset-live.cjs} +2 -2
  24. package/dist/api/address_space_public.d.ts +1 -0
  25. package/dist/api/address_space_public.d.ts.map +1 -0
  26. package/dist/api/address_space_public.js +2 -5
  27. package/dist/api/address_space_public.js.map +1 -1
  28. package/dist/api/address_space_ts.d.ts +1 -0
  29. package/dist/api/address_space_ts.d.ts.map +1 -0
  30. package/dist/api/address_space_ts.js +2 -5
  31. package/dist/api/address_space_ts.js.map +1 -1
  32. package/dist/api/continuation_points/continuation_point_manager.d.ts +1 -0
  33. package/dist/api/continuation_points/continuation_point_manager.d.ts.map +1 -0
  34. package/dist/api/continuation_points/continuation_point_manager.js +13 -17
  35. package/dist/api/continuation_points/continuation_point_manager.js.map +1 -1
  36. package/dist/api/helpers/adjust_browse_direction.d.ts +1 -0
  37. package/dist/api/helpers/adjust_browse_direction.d.ts.map +1 -0
  38. package/dist/api/helpers/adjust_browse_direction.js +2 -5
  39. package/dist/api/helpers/adjust_browse_direction.js.map +1 -1
  40. package/dist/api/helpers/argument_list.d.ts +1 -0
  41. package/dist/api/helpers/argument_list.d.ts.map +1 -0
  42. package/dist/api/helpers/argument_list.js +61 -69
  43. package/dist/api/helpers/argument_list.js.map +1 -1
  44. package/dist/api/helpers/call_helpers.d.ts +1 -0
  45. package/dist/api/helpers/call_helpers.d.ts.map +1 -0
  46. package/dist/api/helpers/call_helpers.js +25 -28
  47. package/dist/api/helpers/call_helpers.js.map +1 -1
  48. package/dist/api/helpers/coerce_enum_value.d.ts +1 -0
  49. package/dist/api/helpers/coerce_enum_value.d.ts.map +1 -0
  50. package/dist/api/helpers/coerce_enum_value.js +15 -17
  51. package/dist/api/helpers/coerce_enum_value.js.map +1 -1
  52. package/dist/api/helpers/dump_tools.d.ts +1 -0
  53. package/dist/api/helpers/dump_tools.d.ts.map +1 -0
  54. package/dist/api/helpers/dump_tools.js +19 -29
  55. package/dist/api/helpers/dump_tools.js.map +1 -1
  56. package/dist/api/helpers/ensure_secure_access.d.ts +1 -0
  57. package/dist/api/helpers/ensure_secure_access.d.ts.map +1 -0
  58. package/dist/api/helpers/ensure_secure_access.js +24 -28
  59. package/dist/api/helpers/ensure_secure_access.js.map +1 -1
  60. package/dist/api/helpers/make_optionals_map.d.ts +1 -0
  61. package/dist/api/helpers/make_optionals_map.d.ts.map +1 -0
  62. package/dist/api/helpers/make_optionals_map.js +1 -4
  63. package/dist/api/helpers/make_optionals_map.js.map +1 -1
  64. package/dist/api/helpers/multiform_func.d.ts +1 -0
  65. package/dist/api/helpers/multiform_func.d.ts.map +1 -0
  66. package/dist/api/helpers/multiform_func.js +4 -8
  67. package/dist/api/helpers/multiform_func.js.map +1 -1
  68. package/dist/api/helpers/resolve_opaque_on_address_space.d.ts +1 -0
  69. package/dist/api/helpers/resolve_opaque_on_address_space.d.ts.map +1 -0
  70. package/dist/api/helpers/resolve_opaque_on_address_space.js +10 -13
  71. package/dist/api/helpers/resolve_opaque_on_address_space.js.map +1 -1
  72. package/dist/api/index.d.ts +3 -1
  73. package/dist/api/index.d.ts.map +1 -0
  74. package/dist/api/index.js +93 -218
  75. package/dist/api/index.js.map +1 -1
  76. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.d.ts +1 -0
  77. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.d.ts.map +1 -0
  78. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js +2 -5
  79. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -1
  80. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.d.ts +1 -0
  81. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.d.ts.map +1 -0
  82. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.js +1 -2
  83. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.d.ts +29 -0
  84. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.d.ts.map +1 -0
  85. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.js +1 -2
  86. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +1 -0
  87. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.d.ts.map +1 -0
  88. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.js +1 -2
  89. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +1 -0
  90. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts.map +1 -0
  91. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +1 -2
  92. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +1 -0
  93. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts.map +1 -0
  94. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.js +1 -2
  95. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +1 -0
  96. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts.map +1 -0
  97. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +1 -2
  98. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +1 -0
  99. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts.map +1 -0
  100. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +1 -2
  101. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +1 -0
  102. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts.map +1 -0
  103. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +1 -2
  104. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +1 -0
  105. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts.map +1 -0
  106. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +1 -2
  107. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +1 -0
  108. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts.map +1 -0
  109. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +1 -2
  110. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +1 -0
  111. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts.map +1 -0
  112. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +1 -2
  113. package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.d.ts +1 -0
  114. package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.d.ts.map +1 -0
  115. package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.js +1 -2
  116. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +1 -0
  117. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts.map +1 -0
  118. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +1 -2
  119. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +1 -0
  120. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts.map +1 -0
  121. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +1 -2
  122. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts +1 -0
  123. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts.map +1 -0
  124. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.js +1 -2
  125. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +1 -0
  126. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts.map +1 -0
  127. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +1 -2
  128. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +1 -0
  129. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.d.ts.map +1 -0
  130. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.js +1 -2
  131. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +1 -0
  132. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts.map +1 -0
  133. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +1 -2
  134. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +1 -0
  135. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts.map +1 -0
  136. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +1 -2
  137. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +1 -0
  138. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts.map +1 -0
  139. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +1 -2
  140. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +1 -0
  141. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts.map +1 -0
  142. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +1 -2
  143. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +1 -0
  144. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts.map +1 -0
  145. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +1 -2
  146. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +1 -0
  147. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts.map +1 -0
  148. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +1 -2
  149. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.d.ts +2 -1
  150. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.d.ts.map +1 -0
  151. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.js +1 -2
  152. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +1 -0
  153. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts.map +1 -0
  154. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.js +1 -2
  155. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.d.ts +1 -0
  156. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.d.ts.map +1 -0
  157. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.js +1 -2
  158. package/dist/api/interfaces/data_access/ua_y_array_item_ex.d.ts +1 -0
  159. package/dist/api/interfaces/data_access/ua_y_array_item_ex.d.ts.map +1 -0
  160. package/dist/api/interfaces/data_access/ua_y_array_item_ex.js +1 -2
  161. package/dist/api/interfaces/extension_object_constructor.d.ts +1 -0
  162. package/dist/api/interfaces/extension_object_constructor.d.ts.map +1 -0
  163. package/dist/api/interfaces/extension_object_constructor.js +1 -2
  164. package/dist/api/interfaces/i_condition_variable_type_setter_options.d.ts +1 -0
  165. package/dist/api/interfaces/i_condition_variable_type_setter_options.d.ts.map +1 -0
  166. package/dist/api/interfaces/i_condition_variable_type_setter_options.js +1 -2
  167. package/dist/api/interfaces/i_set_state_options.d.ts +1 -0
  168. package/dist/api/interfaces/i_set_state_options.d.ts.map +1 -0
  169. package/dist/api/interfaces/i_set_state_options.js +1 -2
  170. package/dist/api/interfaces/nodeset_loader_options.d.ts +18 -0
  171. package/dist/api/interfaces/nodeset_loader_options.d.ts.map +1 -0
  172. package/dist/api/interfaces/nodeset_loader_options.js +1 -2
  173. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +1 -0
  174. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts.map +1 -0
  175. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +1 -2
  176. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.d.ts +1 -0
  177. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.d.ts.map +1 -0
  178. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.js +1 -2
  179. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.d.ts +1 -0
  180. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.d.ts.map +1 -0
  181. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.js +1 -2
  182. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +1 -0
  183. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts.map +1 -0
  184. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.js +1 -2
  185. package/dist/api/interfaces/state_machine/ua_state_machine_type.d.ts +1 -0
  186. package/dist/api/interfaces/state_machine/ua_state_machine_type.d.ts.map +1 -0
  187. package/dist/api/interfaces/state_machine/ua_state_machine_type.js +1 -2
  188. package/dist/api/interfaces/state_machine/ua_state_machine_type.js.map +1 -1
  189. package/dist/api/interfaces/state_machine/ua_transition_ex.d.ts +1 -0
  190. package/dist/api/interfaces/state_machine/ua_transition_ex.d.ts.map +1 -0
  191. package/dist/api/interfaces/state_machine/ua_transition_ex.js +1 -2
  192. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +1 -0
  193. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.d.ts.map +1 -0
  194. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.js +1 -2
  195. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -1
  196. package/dist/api/loader/decode_xml_extension_object.d.ts +1 -0
  197. package/dist/api/loader/decode_xml_extension_object.d.ts.map +1 -0
  198. package/dist/api/loader/decode_xml_extension_object.js +13 -17
  199. package/dist/api/loader/decode_xml_extension_object.js.map +1 -1
  200. package/dist/api/loader/ensure_datatype_extracted.d.ts +1 -0
  201. package/dist/api/loader/ensure_datatype_extracted.d.ts.map +1 -0
  202. package/dist/api/loader/ensure_datatype_extracted.js +83 -52
  203. package/dist/api/loader/ensure_datatype_extracted.js.map +1 -1
  204. package/dist/api/loader/generateAddressSpaceRaw.d.ts +1 -0
  205. package/dist/api/loader/generateAddressSpaceRaw.d.ts.map +1 -0
  206. package/dist/api/loader/generateAddressSpaceRaw.js +76 -74
  207. package/dist/api/loader/generateAddressSpaceRaw.js.map +1 -1
  208. package/dist/api/loader/load_nodeset2.d.ts +1 -0
  209. package/dist/api/loader/load_nodeset2.d.ts.map +1 -0
  210. package/dist/api/loader/load_nodeset2.js +44 -51
  211. package/dist/api/loader/load_nodeset2.js.map +1 -1
  212. package/dist/api/loader/make_semver_compatible.d.ts +1 -0
  213. package/dist/api/loader/make_semver_compatible.d.ts.map +1 -0
  214. package/dist/api/loader/make_semver_compatible.js +1 -4
  215. package/dist/api/loader/make_semver_compatible.js.map +1 -1
  216. package/dist/api/loader/make_xml_extension_object_parser.d.ts +1 -0
  217. package/dist/api/loader/make_xml_extension_object_parser.d.ts.map +1 -0
  218. package/dist/api/loader/make_xml_extension_object_parser.js +37 -40
  219. package/dist/api/loader/make_xml_extension_object_parser.js.map +1 -1
  220. package/dist/api/loader/namespace_post_step.d.ts +1 -0
  221. package/dist/api/loader/namespace_post_step.d.ts.map +1 -0
  222. package/dist/api/loader/namespace_post_step.js +12 -17
  223. package/dist/api/loader/namespace_post_step.js.map +1 -1
  224. package/dist/api/loader/narrow_instance_datatypes.d.ts +1 -0
  225. package/dist/api/loader/narrow_instance_datatypes.d.ts.map +1 -0
  226. package/dist/api/loader/narrow_instance_datatypes.js +38 -28
  227. package/dist/api/loader/narrow_instance_datatypes.js.map +1 -1
  228. package/dist/api/loader/nodeset_builtin_formats.d.ts +1 -0
  229. package/dist/api/loader/nodeset_builtin_formats.d.ts.map +1 -0
  230. package/dist/api/loader/nodeset_builtin_formats.js +20 -25
  231. package/dist/api/loader/nodeset_builtin_formats.js.map +1 -1
  232. package/dist/api/loader/nodeset_format.d.ts +1 -0
  233. package/dist/api/loader/nodeset_format.d.ts.map +1 -0
  234. package/dist/api/loader/nodeset_format.js +4 -10
  235. package/dist/api/loader/nodeset_format.js.map +1 -1
  236. package/dist/api/loader/nodeset_image.d.ts +1 -0
  237. package/dist/api/loader/nodeset_image.d.ts.map +1 -0
  238. package/dist/api/loader/nodeset_image.js +38 -54
  239. package/dist/api/loader/nodeset_image.js.map +1 -1
  240. package/dist/api/loader/nodeset_image_codec.d.ts +1 -0
  241. package/dist/api/loader/nodeset_image_codec.d.ts.map +1 -0
  242. package/dist/api/loader/nodeset_image_codec.js +118 -116
  243. package/dist/api/loader/nodeset_image_codec.js.map +1 -1
  244. package/dist/api/loader/nodeset_image_store.d.ts +1 -0
  245. package/dist/api/loader/nodeset_image_store.d.ts.map +1 -0
  246. package/dist/api/loader/nodeset_image_store.js +5 -11
  247. package/dist/api/loader/nodeset_image_store.js.map +1 -1
  248. package/dist/api/loader/nodeset_record.d.ts +1 -0
  249. package/dist/api/loader/nodeset_record.d.ts.map +1 -0
  250. package/dist/api/loader/nodeset_record.js +3 -7
  251. package/dist/api/loader/nodeset_record.js.map +1 -1
  252. package/dist/api/loader/nodeset_record_applier.d.ts +1 -0
  253. package/dist/api/loader/nodeset_record_applier.d.ts.map +1 -0
  254. package/dist/api/loader/nodeset_record_applier.js +89 -97
  255. package/dist/api/loader/nodeset_record_applier.js.map +1 -1
  256. package/dist/api/loader/nodeset_records_to_xml.d.ts +1 -0
  257. package/dist/api/loader/nodeset_records_to_xml.d.ts.map +1 -0
  258. package/dist/api/loader/nodeset_records_to_xml.js +82 -88
  259. package/dist/api/loader/nodeset_records_to_xml.js.map +1 -1
  260. package/dist/api/loader/nodeset_source.d.ts +1 -0
  261. package/dist/api/loader/nodeset_source.d.ts.map +1 -0
  262. package/dist/api/loader/nodeset_source.js +14 -21
  263. package/dist/api/loader/nodeset_source.js.map +1 -1
  264. package/dist/api/loader/nodeset_source_helpers.d.ts +1 -0
  265. package/dist/api/loader/nodeset_source_helpers.d.ts.map +1 -0
  266. package/dist/api/loader/nodeset_source_helpers.js +2 -6
  267. package/dist/api/loader/nodeset_source_helpers.js.map +1 -1
  268. package/dist/api/loader/nodeset_to_image.d.ts +1 -0
  269. package/dist/api/loader/nodeset_to_image.d.ts.map +1 -0
  270. package/dist/api/loader/nodeset_to_image.js +12 -15
  271. package/dist/api/loader/nodeset_to_image.js.map +1 -1
  272. package/dist/api/loader/nodeset_xml_header.d.ts +1 -0
  273. package/dist/api/loader/nodeset_xml_header.d.ts.map +1 -0
  274. package/dist/api/loader/nodeset_xml_header.js +9 -14
  275. package/dist/api/loader/nodeset_xml_header.js.map +1 -1
  276. package/dist/api/loader/nodeset_xml_primitives.d.ts +1 -0
  277. package/dist/api/loader/nodeset_xml_primitives.d.ts.map +1 -0
  278. package/dist/api/loader/nodeset_xml_primitives.js +32 -53
  279. package/dist/api/loader/nodeset_xml_primitives.js.map +1 -1
  280. package/dist/api/loader/nodeset_xml_producer.d.ts +1 -0
  281. package/dist/api/loader/nodeset_xml_producer.d.ts.map +1 -0
  282. package/dist/api/loader/nodeset_xml_producer.js +49 -51
  283. package/dist/api/loader/nodeset_xml_producer.js.map +1 -1
  284. package/dist/api/loader/parsers/extension_object_parser.d.ts +1 -0
  285. package/dist/api/loader/parsers/extension_object_parser.d.ts.map +1 -0
  286. package/dist/api/loader/parsers/extension_object_parser.js +49 -57
  287. package/dist/api/loader/parsers/extension_object_parser.js.map +1 -1
  288. package/dist/api/loader/parsers/localized_text_parser.d.ts +1 -0
  289. package/dist/api/loader/parsers/localized_text_parser.d.ts.map +1 -0
  290. package/dist/api/loader/parsers/localized_text_parser.js +3 -6
  291. package/dist/api/loader/parsers/localized_text_parser.js.map +1 -1
  292. package/dist/api/loader/parsers/nodeid_parser.d.ts +1 -0
  293. package/dist/api/loader/parsers/nodeid_parser.d.ts.map +1 -0
  294. package/dist/api/loader/parsers/nodeid_parser.js +3 -7
  295. package/dist/api/loader/parsers/nodeid_parser.js.map +1 -1
  296. package/dist/api/loader/parsers/qualified_name_parser.d.ts +1 -0
  297. package/dist/api/loader/parsers/qualified_name_parser.d.ts.map +1 -0
  298. package/dist/api/loader/parsers/qualified_name_parser.js +5 -9
  299. package/dist/api/loader/parsers/qualified_name_parser.js.map +1 -1
  300. package/dist/api/loader/parsers/variant_parser.d.ts +1 -0
  301. package/dist/api/loader/parsers/variant_parser.d.ts.map +1 -0
  302. package/dist/api/loader/parsers/variant_parser.js +59 -63
  303. package/dist/api/loader/parsers/variant_parser.js.map +1 -1
  304. package/dist/api/loader/register_node_promoter.d.ts +10 -1
  305. package/dist/api/loader/register_node_promoter.d.ts.map +1 -0
  306. package/dist/api/loader/register_node_promoter.js +11 -7
  307. package/dist/api/loader/register_node_promoter.js.map +1 -1
  308. package/dist/api/namespace.d.ts +1 -0
  309. package/dist/api/namespace.d.ts.map +1 -0
  310. package/dist/api/namespace.js +1 -2
  311. package/dist/api/namespace_alarm_and_condition.d.ts +1 -0
  312. package/dist/api/namespace_alarm_and_condition.d.ts.map +1 -0
  313. package/dist/api/namespace_alarm_and_condition.js +1 -2
  314. package/dist/api/namespace_data_access.d.ts +1 -0
  315. package/dist/api/namespace_data_access.d.ts.map +1 -0
  316. package/dist/api/namespace_data_access.js +1 -2
  317. package/dist/api/namespace_machine_state.d.ts +1 -0
  318. package/dist/api/namespace_machine_state.d.ts.map +1 -0
  319. package/dist/api/namespace_machine_state.js +1 -2
  320. package/dist/api/namespace_of.d.ts +1 -0
  321. package/dist/api/namespace_of.d.ts.map +1 -0
  322. package/dist/api/namespace_of.js +1 -4
  323. package/dist/api/namespace_of.js.map +1 -1
  324. package/dist/api/pseudo_session.d.ts +1 -0
  325. package/dist/api/pseudo_session.d.ts.map +1 -0
  326. package/dist/api/pseudo_session.js +56 -62
  327. package/dist/api/pseudo_session.js.map +1 -1
  328. package/dist/api/session_context.d.ts +1 -0
  329. package/dist/api/session_context.d.ts.map +1 -0
  330. package/dist/api/session_context.js +60 -68
  331. package/dist/api/session_context.js.map +1 -1
  332. package/dist/api/set_namespace_meta_data.d.ts +1 -0
  333. package/dist/api/set_namespace_meta_data.d.ts.map +1 -0
  334. package/dist/api/set_namespace_meta_data.js +10 -13
  335. package/dist/api/set_namespace_meta_data.js.map +1 -1
  336. package/dist/api/ua_addin.d.ts +1 -0
  337. package/dist/api/ua_addin.d.ts.map +1 -0
  338. package/dist/api/ua_addin.js +9 -13
  339. package/dist/api/ua_addin.js.map +1 -1
  340. package/dist/api/ua_interface.d.ts +1 -0
  341. package/dist/api/ua_interface.d.ts.map +1 -0
  342. package/dist/api/ua_interface.js +5 -8
  343. package/dist/api/ua_interface.js.map +1 -1
  344. package/dist/api/ua_root_folder.d.ts +1 -0
  345. package/dist/api/ua_root_folder.d.ts.map +1 -0
  346. package/dist/api/ua_root_folder.js +1 -2
  347. package/dist/api/ua_two_state_variable_ex.d.ts +1 -0
  348. package/dist/api/ua_two_state_variable_ex.d.ts.map +1 -0
  349. package/dist/api/ua_two_state_variable_ex.js +1 -2
  350. package/dist/api/xml_writer.d.ts +1 -0
  351. package/dist/api/xml_writer.d.ts.map +1 -0
  352. package/dist/api/xml_writer.js +1 -2
  353. package/dist/impl/_instantiate_helpers.d.ts +1 -0
  354. package/dist/impl/_instantiate_helpers.d.ts.map +1 -0
  355. package/dist/impl/_instantiate_helpers.js +25 -31
  356. package/dist/impl/_instantiate_helpers.js.map +1 -1
  357. package/dist/impl/_mandatory_child_or_requested_optional_filter.d.ts +1 -0
  358. package/dist/impl/_mandatory_child_or_requested_optional_filter.d.ts.map +1 -0
  359. package/dist/impl/_mandatory_child_or_requested_optional_filter.js +16 -20
  360. package/dist/impl/_mandatory_child_or_requested_optional_filter.js.map +1 -1
  361. package/dist/impl/address_space.d.ts +40 -0
  362. package/dist/impl/address_space.d.ts.map +1 -0
  363. package/dist/impl/address_space.js +246 -189
  364. package/dist/impl/address_space.js.map +1 -1
  365. package/dist/impl/address_space_change_event_tools.d.ts +1 -0
  366. package/dist/impl/address_space_change_event_tools.d.ts.map +1 -0
  367. package/dist/impl/address_space_change_event_tools.js +31 -29
  368. package/dist/impl/address_space_change_event_tools.js.map +1 -1
  369. package/dist/impl/address_space_private.d.ts +2 -0
  370. package/dist/impl/address_space_private.d.ts.map +1 -0
  371. package/dist/impl/address_space_private.js +1 -2
  372. package/dist/impl/address_space_private.js.map +1 -1
  373. package/dist/impl/alarms_and_conditions/condition.d.ts +1 -0
  374. package/dist/impl/alarms_and_conditions/condition.d.ts.map +1 -0
  375. package/dist/impl/alarms_and_conditions/condition.js +1 -2
  376. package/dist/impl/alarms_and_conditions/condition.js.map +1 -1
  377. package/dist/impl/alarms_and_conditions/condition_info_impl.d.ts +1 -0
  378. package/dist/impl/alarms_and_conditions/condition_info_impl.d.ts.map +1 -0
  379. package/dist/impl/alarms_and_conditions/condition_info_impl.js +3 -7
  380. package/dist/impl/alarms_and_conditions/condition_info_impl.js.map +1 -1
  381. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.d.ts +1 -0
  382. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.d.ts.map +1 -0
  383. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js +77 -81
  384. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  385. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.d.ts +1 -0
  386. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.d.ts.map +1 -0
  387. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js +17 -20
  388. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
  389. package/dist/impl/alarms_and_conditions/index.d.ts +1 -0
  390. package/dist/impl/alarms_and_conditions/index.d.ts.map +1 -0
  391. package/dist/impl/alarms_and_conditions/index.js +13 -29
  392. package/dist/impl/alarms_and_conditions/index.js.map +1 -1
  393. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +1 -0
  394. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts.map +1 -0
  395. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +60 -65
  396. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
  397. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.d.ts +1 -0
  398. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.d.ts.map +1 -0
  399. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js +53 -59
  400. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  401. package/dist/impl/alarms_and_conditions/ua_base_event_impl.d.ts +1 -0
  402. package/dist/impl/alarms_and_conditions/ua_base_event_impl.d.ts.map +1 -0
  403. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js +12 -16
  404. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js.map +1 -1
  405. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +1 -0
  406. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts.map +1 -0
  407. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +34 -39
  408. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  409. package/dist/impl/alarms_and_conditions/ua_condition_impl.d.ts +1 -0
  410. package/dist/impl/alarms_and_conditions/ua_condition_impl.d.ts.map +1 -0
  411. package/dist/impl/alarms_and_conditions/ua_condition_impl.js +140 -148
  412. package/dist/impl/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  413. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +1 -0
  414. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.d.ts.map +1 -0
  415. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js +6 -10
  416. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -1
  417. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +9 -0
  418. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts.map +1 -0
  419. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +28 -22
  420. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  421. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +1 -0
  422. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts.map +1 -0
  423. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +3 -7
  424. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -1
  425. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +1 -0
  426. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts.map +1 -0
  427. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +14 -18
  428. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  429. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +1 -0
  430. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts.map +1 -0
  431. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +2 -6
  432. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -1
  433. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.d.ts +1 -0
  434. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.d.ts.map +1 -0
  435. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js +35 -39
  436. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  437. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +9 -0
  438. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts.map +1 -0
  439. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +27 -21
  440. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  441. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +1 -0
  442. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts.map +1 -0
  443. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +27 -31
  444. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  445. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +1 -0
  446. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts.map +1 -0
  447. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js +18 -22
  448. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  449. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +1 -0
  450. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts.map +1 -0
  451. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +3 -7
  452. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
  453. package/dist/impl/apply_condition_refresh.d.ts +1 -0
  454. package/dist/impl/apply_condition_refresh.d.ts.map +1 -0
  455. package/dist/impl/apply_condition_refresh.js +1 -4
  456. package/dist/impl/apply_condition_refresh.js.map +1 -1
  457. package/dist/impl/base_node_impl.d.ts +1 -0
  458. package/dist/impl/base_node_impl.d.ts.map +1 -0
  459. package/dist/impl/base_node_impl.js +279 -292
  460. package/dist/impl/base_node_impl.js.map +1 -1
  461. package/dist/impl/base_node_private.d.ts +1 -0
  462. package/dist/impl/base_node_private.d.ts.map +1 -0
  463. package/dist/impl/base_node_private.js +168 -199
  464. package/dist/impl/base_node_private.js.map +1 -1
  465. package/dist/impl/bulk_load_clock.d.ts +35 -0
  466. package/dist/impl/bulk_load_clock.d.ts.map +1 -0
  467. package/dist/impl/bulk_load_clock.js +58 -0
  468. package/dist/impl/bulk_load_clock.js.map +1 -0
  469. package/dist/impl/check_value_rank_compatibility.d.ts +1 -0
  470. package/dist/impl/check_value_rank_compatibility.d.ts.map +1 -0
  471. package/dist/impl/check_value_rank_compatibility.js +1 -4
  472. package/dist/impl/check_value_rank_compatibility.js.map +1 -1
  473. package/dist/impl/child_accessors.d.ts +1 -0
  474. package/dist/impl/child_accessors.d.ts.map +1 -0
  475. package/dist/impl/child_accessors.js +10 -20
  476. package/dist/impl/child_accessors.js.map +1 -1
  477. package/dist/impl/data_access/add_dataItem_stuff.d.ts +1 -0
  478. package/dist/impl/data_access/add_dataItem_stuff.d.ts.map +1 -0
  479. package/dist/impl/data_access/add_dataItem_stuff.js +6 -9
  480. package/dist/impl/data_access/add_dataItem_stuff.js.map +1 -1
  481. package/dist/impl/data_access/adjust_datavalue_status_code.d.ts +1 -0
  482. package/dist/impl/data_access/adjust_datavalue_status_code.d.ts.map +1 -0
  483. package/dist/impl/data_access/adjust_datavalue_status_code.js +9 -12
  484. package/dist/impl/data_access/adjust_datavalue_status_code.js.map +1 -1
  485. package/dist/impl/data_access/semantics_changed.d.ts +12 -0
  486. package/dist/impl/data_access/semantics_changed.d.ts.map +1 -0
  487. package/dist/impl/data_access/semantics_changed.js +44 -10
  488. package/dist/impl/data_access/semantics_changed.js.map +1 -1
  489. package/dist/impl/data_access/ua_multistate_discrete_impl.d.ts +2 -1
  490. package/dist/impl/data_access/ua_multistate_discrete_impl.d.ts.map +1 -0
  491. package/dist/impl/data_access/ua_multistate_discrete_impl.js +35 -41
  492. package/dist/impl/data_access/ua_multistate_discrete_impl.js.map +1 -1
  493. package/dist/impl/data_access/ua_multistate_value_discrete_impl.d.ts +1 -0
  494. package/dist/impl/data_access/ua_multistate_value_discrete_impl.d.ts.map +1 -0
  495. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js +71 -78
  496. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js.map +1 -1
  497. package/dist/impl/data_access/ua_two_state_discrete_impl.d.ts +1 -0
  498. package/dist/impl/data_access/ua_two_state_discrete_impl.d.ts.map +1 -0
  499. package/dist/impl/data_access/ua_two_state_discrete_impl.js +27 -36
  500. package/dist/impl/data_access/ua_two_state_discrete_impl.js.map +1 -1
  501. package/dist/impl/event_data.d.ts +1 -0
  502. package/dist/impl/event_data.d.ts.map +1 -0
  503. package/dist/impl/event_data.js +15 -19
  504. package/dist/impl/event_data.js.map +1 -1
  505. package/dist/impl/event_layout.d.ts +1 -0
  506. package/dist/impl/event_layout.d.ts.map +1 -0
  507. package/dist/impl/event_layout.js +12 -16
  508. package/dist/impl/event_layout.js.map +1 -1
  509. package/dist/impl/extension_object_array_node.d.ts +1 -0
  510. package/dist/impl/extension_object_array_node.d.ts.map +1 -0
  511. package/dist/impl/extension_object_array_node.js +47 -53
  512. package/dist/impl/extension_object_array_node.js.map +1 -1
  513. package/dist/impl/get_basic_datatype.d.ts +1 -0
  514. package/dist/impl/get_basic_datatype.d.ts.map +1 -0
  515. package/dist/impl/get_basic_datatype.js +6 -10
  516. package/dist/impl/get_basic_datatype.js.map +1 -1
  517. package/dist/impl/handle_hierarchy_parent.d.ts +1 -0
  518. package/dist/impl/handle_hierarchy_parent.d.ts.map +1 -0
  519. package/dist/impl/handle_hierarchy_parent.js +26 -30
  520. package/dist/impl/handle_hierarchy_parent.js.map +1 -1
  521. package/dist/impl/historical_access/address_space_historical_data_node.d.ts +1 -0
  522. package/dist/impl/historical_access/address_space_historical_data_node.d.ts.map +1 -0
  523. package/dist/impl/historical_access/address_space_historical_data_node.js +76 -84
  524. package/dist/impl/historical_access/address_space_historical_data_node.js.map +1 -1
  525. package/dist/impl/historical_access/read_processed_details_hook.d.ts +1 -0
  526. package/dist/impl/historical_access/read_processed_details_hook.d.ts.map +1 -0
  527. package/dist/impl/historical_access/read_processed_details_hook.js +1 -4
  528. package/dist/impl/historical_access/read_processed_details_hook.js.map +1 -1
  529. package/dist/impl/historizer_factory.d.ts +1 -0
  530. package/dist/impl/historizer_factory.d.ts.map +1 -0
  531. package/dist/impl/historizer_factory.js +1 -4
  532. package/dist/impl/historizer_factory.js.map +1 -1
  533. package/dist/impl/idx_iterator.d.ts +1 -0
  534. package/dist/impl/idx_iterator.d.ts.map +1 -0
  535. package/dist/impl/idx_iterator.js +1 -5
  536. package/dist/impl/idx_iterator.js.map +1 -1
  537. package/dist/impl/namespace_impl.d.ts +32 -0
  538. package/dist/impl/namespace_impl.d.ts.map +1 -0
  539. package/dist/impl/namespace_impl.js +418 -318
  540. package/dist/impl/namespace_impl.js.map +1 -1
  541. package/dist/impl/namespace_private.d.ts +3 -0
  542. package/dist/impl/namespace_private.d.ts.map +1 -0
  543. package/dist/impl/namespace_private.js +3 -6
  544. package/dist/impl/namespace_private.js.map +1 -1
  545. package/dist/impl/nodeid_manager.d.ts +16 -0
  546. package/dist/impl/nodeid_manager.d.ts.map +1 -0
  547. package/dist/impl/nodeid_manager.js +70 -46
  548. package/dist/impl/nodeid_manager.js.map +1 -1
  549. package/dist/impl/nodeset_tools/adjust_namespace_array.d.ts +1 -0
  550. package/dist/impl/nodeset_tools/adjust_namespace_array.d.ts.map +1 -0
  551. package/dist/impl/nodeset_tools/adjust_namespace_array.js +1 -4
  552. package/dist/impl/nodeset_tools/adjust_namespace_array.js.map +1 -1
  553. package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts +1 -0
  554. package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts.map +1 -0
  555. package/dist/impl/nodeset_tools/construct_namespace_dependency.js +28 -39
  556. package/dist/impl/nodeset_tools/construct_namespace_dependency.js.map +1 -1
  557. package/dist/impl/nodeset_tools/dump_to_bsd.d.ts +1 -0
  558. package/dist/impl/nodeset_tools/dump_to_bsd.d.ts.map +1 -0
  559. package/dist/impl/nodeset_tools/dump_to_bsd.js +14 -20
  560. package/dist/impl/nodeset_tools/dump_to_bsd.js.map +1 -1
  561. package/dist/impl/nodeset_tools/nodeset_to_records.d.ts +1 -0
  562. package/dist/impl/nodeset_tools/nodeset_to_records.d.ts.map +1 -0
  563. package/dist/impl/nodeset_tools/nodeset_to_records.js +125 -139
  564. package/dist/impl/nodeset_tools/nodeset_to_records.js.map +1 -1
  565. package/dist/impl/nodeset_tools/nodeset_to_xml.d.ts +1 -0
  566. package/dist/impl/nodeset_tools/nodeset_to_xml.d.ts.map +1 -0
  567. package/dist/impl/nodeset_tools/nodeset_to_xml.js +190 -202
  568. package/dist/impl/nodeset_tools/nodeset_to_xml.js.map +1 -1
  569. package/dist/impl/private_namespace.d.ts +1 -0
  570. package/dist/impl/private_namespace.d.ts.map +1 -0
  571. package/dist/impl/private_namespace.js +3 -8
  572. package/dist/impl/private_namespace.js.map +1 -1
  573. package/dist/impl/reference_impl.d.ts +1 -0
  574. package/dist/impl/reference_impl.d.ts.map +1 -0
  575. package/dist/impl/reference_impl.js +24 -37
  576. package/dist/impl/reference_impl.js.map +1 -1
  577. package/dist/impl/reference_type_version.d.ts +1 -0
  578. package/dist/impl/reference_type_version.d.ts.map +1 -0
  579. package/dist/impl/reference_type_version.js +2 -5
  580. package/dist/impl/reference_type_version.js.map +1 -1
  581. package/dist/impl/role_permissions.d.ts +1 -0
  582. package/dist/impl/role_permissions.d.ts.map +1 -0
  583. package/dist/impl/role_permissions.js +3 -6
  584. package/dist/impl/role_permissions.js.map +1 -1
  585. package/dist/impl/state_machine/finite_state_machine.d.ts +1 -0
  586. package/dist/impl/state_machine/finite_state_machine.d.ts.map +1 -0
  587. package/dist/impl/state_machine/finite_state_machine.js +123 -97
  588. package/dist/impl/state_machine/finite_state_machine.js.map +1 -1
  589. package/dist/impl/state_machine/ua_shelving_state_machine_ex.d.ts +1 -0
  590. package/dist/impl/state_machine/ua_shelving_state_machine_ex.d.ts.map +1 -0
  591. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js +57 -62
  592. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js.map +1 -1
  593. package/dist/impl/state_machine/ua_two_state_variable.d.ts +1 -0
  594. package/dist/impl/state_machine/ua_two_state_variable.d.ts.map +1 -0
  595. package/dist/impl/state_machine/ua_two_state_variable.js +56 -63
  596. package/dist/impl/state_machine/ua_two_state_variable.js.map +1 -1
  597. package/dist/impl/tool_isSubtypeOf.d.ts +1 -0
  598. package/dist/impl/tool_isSubtypeOf.d.ts.map +1 -0
  599. package/dist/impl/tool_isSubtypeOf.js +27 -34
  600. package/dist/impl/tool_isSubtypeOf.js.map +1 -1
  601. package/dist/impl/ua_condition_type.d.ts +1 -0
  602. package/dist/impl/ua_condition_type.d.ts.map +1 -0
  603. package/dist/impl/ua_condition_type.js +1 -2
  604. package/dist/impl/ua_data_type_impl.d.ts +1 -0
  605. package/dist/impl/ua_data_type_impl.d.ts.map +1 -0
  606. package/dist/impl/ua_data_type_impl.js +99 -83
  607. package/dist/impl/ua_data_type_impl.js.map +1 -1
  608. package/dist/impl/ua_method_impl.d.ts +3 -2
  609. package/dist/impl/ua_method_impl.d.ts.map +1 -0
  610. package/dist/impl/ua_method_impl.js +74 -78
  611. package/dist/impl/ua_method_impl.js.map +1 -1
  612. package/dist/impl/ua_object_impl.d.ts +1 -0
  613. package/dist/impl/ua_object_impl.d.ts.map +1 -0
  614. package/dist/impl/ua_object_impl.js +48 -51
  615. package/dist/impl/ua_object_impl.js.map +1 -1
  616. package/dist/impl/ua_object_type_impl.d.ts +1 -0
  617. package/dist/impl/ua_object_type_impl.d.ts.map +1 -0
  618. package/dist/impl/ua_object_type_impl.js +36 -39
  619. package/dist/impl/ua_object_type_impl.js.map +1 -1
  620. package/dist/impl/ua_reference_type_impl.d.ts +2 -1
  621. package/dist/impl/ua_reference_type_impl.d.ts.map +1 -0
  622. package/dist/impl/ua_reference_type_impl.js +41 -45
  623. package/dist/impl/ua_reference_type_impl.js.map +1 -1
  624. package/dist/impl/ua_variable_impl.d.ts +1 -0
  625. package/dist/impl/ua_variable_impl.d.ts.map +1 -0
  626. package/dist/impl/ua_variable_impl.js +373 -376
  627. package/dist/impl/ua_variable_impl.js.map +1 -1
  628. package/dist/impl/ua_variable_impl_ext_obj.d.ts +1 -0
  629. package/dist/impl/ua_variable_impl_ext_obj.d.ts.map +1 -0
  630. package/dist/impl/ua_variable_impl_ext_obj.js +79 -97
  631. package/dist/impl/ua_variable_impl_ext_obj.js.map +1 -1
  632. package/dist/impl/ua_variable_type_impl.d.ts +1 -0
  633. package/dist/impl/ua_variable_type_impl.d.ts.map +1 -0
  634. package/dist/impl/ua_variable_type_impl.js +78 -84
  635. package/dist/impl/ua_variable_type_impl.js.map +1 -1
  636. package/dist/impl/ua_view_impl.d.ts +1 -0
  637. package/dist/impl/ua_view_impl.d.ts.map +1 -0
  638. package/dist/impl/ua_view_impl.js +18 -22
  639. package/dist/impl/ua_view_impl.js.map +1 -1
  640. package/dist/impl/validate_data_type_correctness.d.ts +1 -0
  641. package/dist/impl/validate_data_type_correctness.d.ts.map +1 -0
  642. package/dist/impl/validate_data_type_correctness.js +24 -30
  643. package/dist/impl/validate_data_type_correctness.js.map +1 -1
  644. package/dist/tsconfig_base.tsbuildinfo +1 -1
  645. package/distHelpers/add_event_generator_object.d.ts +1 -0
  646. package/distHelpers/add_event_generator_object.d.ts.map +1 -0
  647. package/distHelpers/add_event_generator_object.js +8 -11
  648. package/distHelpers/add_event_generator_object.js.map +1 -1
  649. package/distHelpers/address_space_digest.d.ts +1 -0
  650. package/distHelpers/address_space_digest.d.ts.map +1 -0
  651. package/distHelpers/address_space_digest.js +1 -5
  652. package/distHelpers/address_space_digest.js.map +1 -1
  653. package/distHelpers/alarms_and_conditions_demo.d.ts +1 -0
  654. package/distHelpers/alarms_and_conditions_demo.d.ts.map +1 -0
  655. package/distHelpers/alarms_and_conditions_demo.js +8 -11
  656. package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
  657. package/distHelpers/assertHasMatchingReference.d.ts +1 -0
  658. package/distHelpers/assertHasMatchingReference.d.ts.map +1 -0
  659. package/distHelpers/assertHasMatchingReference.js +6 -9
  660. package/distHelpers/assertHasMatchingReference.js.map +1 -1
  661. package/distHelpers/boiler_system.d.ts +1 -0
  662. package/distHelpers/boiler_system.d.ts.map +1 -0
  663. package/distHelpers/boiler_system.js +36 -40
  664. package/distHelpers/boiler_system.js.map +1 -1
  665. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +1 -0
  666. package/distHelpers/create_minimalist_address_space_nodeset.d.ts.map +1 -0
  667. package/distHelpers/create_minimalist_address_space_nodeset.js +29 -35
  668. package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -1
  669. package/distHelpers/date_utils.d.ts +1 -0
  670. package/distHelpers/date_utils.d.ts.map +1 -0
  671. package/distHelpers/date_utils.js +1 -4
  672. package/distHelpers/date_utils.js.map +1 -1
  673. package/distHelpers/dump_statemachine.d.ts +1 -0
  674. package/distHelpers/dump_statemachine.d.ts.map +1 -0
  675. package/distHelpers/dump_statemachine.js +1 -2
  676. package/distHelpers/dump_statemachine.js.map +1 -1
  677. package/distHelpers/get_address_space_fixture.d.ts +1 -0
  678. package/distHelpers/get_address_space_fixture.d.ts.map +1 -0
  679. package/distHelpers/get_address_space_fixture.js +12 -18
  680. package/distHelpers/get_address_space_fixture.js.map +1 -1
  681. package/distHelpers/get_mini_address_space.d.ts +1 -0
  682. package/distHelpers/get_mini_address_space.d.ts.map +1 -0
  683. package/distHelpers/get_mini_address_space.js +12 -18
  684. package/distHelpers/get_mini_address_space.js.map +1 -1
  685. package/distHelpers/index.d.ts +1 -0
  686. package/distHelpers/index.d.ts.map +1 -0
  687. package/distHelpers/index.js +10 -26
  688. package/distHelpers/index.js.map +1 -1
  689. package/distHelpers/mock_session.d.ts +1 -0
  690. package/distHelpers/mock_session.d.ts.map +1 -0
  691. package/distHelpers/mock_session.js +11 -16
  692. package/distHelpers/mock_session.js.map +1 -1
  693. package/distNodeJS/address_space_digest.d.ts +1 -0
  694. package/distNodeJS/address_space_digest.d.ts.map +1 -0
  695. package/distNodeJS/address_space_digest.js +3 -6
  696. package/distNodeJS/address_space_digest.js.map +1 -1
  697. package/distNodeJS/generate_address_space.d.ts +1 -0
  698. package/distNodeJS/generate_address_space.d.ts.map +1 -0
  699. package/distNodeJS/generate_address_space.js +67 -97
  700. package/distNodeJS/generate_address_space.js.map +1 -1
  701. package/distNodeJS/index.d.ts +1 -0
  702. package/distNodeJS/index.d.ts.map +1 -0
  703. package/distNodeJS/index.js +3 -19
  704. package/distNodeJS/index.js.map +1 -1
  705. package/distNodeJS/nodeset_image_file_store.d.ts +1 -0
  706. package/distNodeJS/nodeset_image_file_store.d.ts.map +1 -0
  707. package/distNodeJS/nodeset_image_file_store.js +20 -28
  708. package/distNodeJS/nodeset_image_file_store.js.map +1 -1
  709. package/impl/_mandatory_child_or_requested_optional_filter.ts +3 -3
  710. package/impl/address_space.ts +75 -6
  711. package/impl/address_space_change_event_tools.ts +7 -0
  712. package/impl/address_space_private.ts +1 -0
  713. package/impl/alarms_and_conditions/condition_snapshot_impl.ts +1 -1
  714. package/impl/alarms_and_conditions/deviation_alarm_helper.ts +3 -0
  715. package/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +1 -1
  716. package/impl/alarms_and_conditions/ua_alarm_condition_impl.ts +1 -1
  717. package/impl/alarms_and_conditions/ua_condition_impl.ts +1 -1
  718. package/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +12 -1
  719. package/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +12 -1
  720. package/impl/bulk_load_clock.ts +65 -0
  721. package/impl/data_access/semantics_changed.ts +39 -1
  722. package/impl/data_access/ua_multistate_discrete_impl.ts +1 -1
  723. package/impl/extension_object_array_node.ts +5 -5
  724. package/impl/historical_access/address_space_historical_data_node.ts +2 -2
  725. package/impl/namespace_impl.ts +119 -2
  726. package/impl/namespace_private.ts +3 -0
  727. package/impl/nodeid_manager.ts +40 -5
  728. package/impl/nodeset_tools/construct_namespace_dependency.ts +4 -4
  729. package/impl/nodeset_tools/dump_to_bsd.ts +1 -1
  730. package/impl/nodeset_tools/nodeset_to_xml.ts +1 -1
  731. package/impl/state_machine/finite_state_machine.ts +56 -10
  732. package/impl/state_machine/ua_shelving_state_machine_ex.ts +1 -1
  733. package/impl/state_machine/ua_two_state_variable.ts +1 -1
  734. package/impl/tool_isSubtypeOf.ts +1 -1
  735. package/impl/ua_data_type_impl.ts +26 -5
  736. package/impl/ua_method_impl.ts +10 -6
  737. package/impl/ua_object_impl.ts +6 -2
  738. package/impl/ua_object_type_impl.ts +1 -0
  739. package/impl/ua_variable_impl.ts +15 -8
  740. package/impl/ua_variable_type_impl.ts +4 -3
  741. package/nodeJS.d.ts +1 -1
  742. package/nodeJS.js +1 -1
  743. package/package.json +42 -41
  744. package/source_nodejs/generate_address_space.ts +31 -14
  745. package/testHelpers.d.ts +1 -1
  746. package/testHelpers.js +1 -1
  747. /package/bin/{nodeset_tool_common.js → nodeset_tool_common.cjs} +0 -0
@@ -194,6 +194,20 @@ export class AddressSpaceImpl implements AddressSpacePrivate {
194
194
  public suspendBackReference = false;
195
195
  public isFrugal = false;
196
196
 
197
+ /**
198
+ * Stop collecting GeneralModelChangeEventType material.
199
+ *
200
+ * Every node added, deleted or re-referenced pays a probe - an inverse reference scan and a
201
+ * `getNodeVersion` per hierarchical parent - before the bookkeeping can conclude that no node
202
+ * involved carries a NodeVersion and there is nothing to report. A loader, a compiler or a
203
+ * test fixture has no subscriber for those events, so the probe is pure cost.
204
+ *
205
+ * Defaults to `false`, which is the behaviour every existing caller has. While it is `true`
206
+ * no ModelChangeStructure is collected and no NodeVersion is bumped, so set it only when
207
+ * nothing is listening - typically around a bulk load or a bulk delete.
208
+ */
209
+ public suspendModelChangeEvents = false;
210
+
197
211
  public registerChildAccessorNames(browseNames: string[]): void {
198
212
  defineSharedChildAccessors(browseNames);
199
213
  }
@@ -216,6 +230,8 @@ export class AddressSpaceImpl implements AddressSpacePrivate {
216
230
  public readonly isNodeIdString = isNodeIdString;
217
231
  private readonly _private_namespaceIndex: number;
218
232
  private readonly _namespaceArray: NamespacePrivate[];
233
+ /** uri -> index into `_namespaceArray`; registering and resolving a uri were linear scans */
234
+ private readonly _namespaceIndexByUri = new Map<string, number>();
219
235
  private _shutdownTask?: ShutdownTask[];
220
236
  private _eventIdCounter?: Buffer;
221
237
  public $$extraDataTypeManager?: ExtraDataTypeManager;
@@ -301,7 +317,8 @@ export class AddressSpaceImpl implements AddressSpacePrivate {
301
317
  */
302
318
  public getNamespaceIndex(namespaceUri: string): number {
303
319
  assert(typeof namespaceUri === "string");
304
- return this._namespaceArray.findIndex((ns: NamespacePrivate) => ns.namespaceUri === namespaceUri);
320
+ const index = this._namespaceIndexByUri.get(namespaceUri);
321
+ return index === undefined ? -1 : index;
305
322
  }
306
323
 
307
324
  /**
@@ -314,12 +331,12 @@ export class AddressSpaceImpl implements AddressSpacePrivate {
314
331
  * @returns {Namespace}
315
332
  */
316
333
  public registerNamespace(namespaceUri: string): NamespacePrivate {
317
- let index = this._namespaceArray.findIndex((ns) => ns.namespaceUri === namespaceUri);
318
- if (index !== -1) {
319
- assert(this._namespaceArray[index].addressSpace === this);
320
- return this._namespaceArray[index];
334
+ const existing = this._namespaceIndexByUri.get(namespaceUri);
335
+ if (existing !== undefined) {
336
+ assert(this._namespaceArray[existing].addressSpace === this);
337
+ return this._namespaceArray[existing];
321
338
  }
322
- index = this._namespaceArray.length;
339
+ const index = this._namespaceArray.length;
323
340
  this._namespaceArray.push(
324
341
  new NamespaceImpl({
325
342
  addressSpace: this,
@@ -329,9 +346,61 @@ export class AddressSpaceImpl implements AddressSpacePrivate {
329
346
  version: "undefined"
330
347
  })
331
348
  );
349
+ this._namespaceIndexByUri.set(namespaceUri, index);
332
350
  return this._namespaceArray[index];
333
351
  }
334
352
 
353
+ /**
354
+ * Empty a namespace, leaving the rest of the address space as it was before that namespace
355
+ * was ever populated, and the namespace itself registered under the same index and uri and
356
+ * ready to be populated again.
357
+ *
358
+ * This is the recycle that lets a compiler keep its loaded base nodesets across an edit:
359
+ * rebuilding the model's own namespace costs a fraction of rebuilding the whole address
360
+ * space. Everything goes in one model-change transaction, and only the references that cross
361
+ * the namespace boundary are severed - the ones inside it die with their nodes.
362
+ *
363
+ * It lives here rather than on Namespace because most of what it touches is not the
364
+ * namespace's: references held by nodes of other namespaces, the DataType factory this
365
+ * namespace registered with the address space's DataType manager, the address space's set of
366
+ * historizing nodes.
367
+ *
368
+ * Namespace 0 cannot be deleted: it is the standard namespace every other node resolves
369
+ * against.
370
+ *
371
+ * A structure DataType of the namespace also registered an ExtensionObject constructor with
372
+ * the address space's DataType manager; the factory holding those is dropped here, so that
373
+ * a later `ensureDatatypeExtracted` builds a fresh one for the repopulated namespace rather
374
+ * than colliding with the leftovers of the previous one.
375
+ */
376
+ public deleteNamespace(namespaceIndexOrUri: number | string): void {
377
+ const namespace = this.getNamespace(namespaceIndexOrUri);
378
+ /* c8 ignore next */
379
+ if (!namespace) {
380
+ throw new Error(`deleteNamespace: no namespace ${namespaceIndexOrUri.toString()} in this address space`);
381
+ }
382
+ const index = namespace.index;
383
+ if (index === 0) {
384
+ throw new Error("deleteNamespace: the standard namespace (index 0) cannot be deleted");
385
+ }
386
+
387
+ this.modelChangeTransaction(() => {
388
+ namespace._deleteAllNodes();
389
+ });
390
+
391
+ // a historized variable of the namespace is gone; the address space must stop listing it
392
+ if (this.historizingNodes.size) {
393
+ for (const node of [...this.historizingNodes]) {
394
+ if (node.nodeId.namespace === index) {
395
+ this.historizingNodes.delete(node);
396
+ }
397
+ }
398
+ }
399
+
400
+ // the structures and enumerations this namespace registered go with their factory
401
+ this.$$extraDataTypeManager?.unregisterDataTypeFactory(index);
402
+ }
403
+
335
404
  /***
336
405
  * @return {Namespace[]} the namespace array
337
406
  */
@@ -47,6 +47,7 @@ function _getTypeDef(node: BaseNode) {
47
47
  }
48
48
  export function _handle_add_reference_change_event(node1: BaseNode, node2id: NodeId): void {
49
49
  const addressSpace = node1.addressSpace as AddressSpacePrivate;
50
+ if (addressSpace.suspendModelChangeEvents) return;
50
51
  const node2 = addressSpace.findNode(node2id);
51
52
  if (!node2) return;
52
53
 
@@ -98,6 +99,7 @@ try {
98
99
 
99
100
  export function _handle_model_change_event(node: BaseNodeImpl): void {
100
101
  const addressSpace = node.addressSpace as AddressSpacePrivate;
102
+ if (addressSpace.suspendModelChangeEvents) return;
101
103
  //
102
104
  const parents = node.parent ? [node.parent] : [];
103
105
 
@@ -143,6 +145,11 @@ export function _handle_model_change_event(node: BaseNodeImpl): void {
143
145
 
144
146
  export function _handle_delete_node_model_change_event(node: BaseNode): void {
145
147
  const addressSpace = node.addressSpace as AddressSpacePrivate;
148
+ // The probe below - an inverse reference scan, then a findNode and a getNodeVersion per
149
+ // parent - runs on every node deleted, only to conclude that nothing has a NodeVersion and
150
+ // there is nothing to record. A loader or a compiler has no GeneralModelChangeEventType
151
+ // subscriber at all, and says so by setting this; see AddressSpace#suspendModelChangeEvents.
152
+ if (addressSpace.suspendModelChangeEvents) return;
146
153
 
147
154
  // get backward references
148
155
  const references = node.findReferencesEx("HierarchicalReferences", BrowseDirection.Inverse);
@@ -32,6 +32,7 @@ export interface AddressSpacePrivate extends IAddressSpace {
32
32
 
33
33
  isFrugal: boolean;
34
34
  suspendBackReference: boolean;
35
+ suspendModelChangeEvents: boolean;
35
36
 
36
37
  _condition_refresh_in_progress: boolean;
37
38
 
@@ -95,7 +95,7 @@ export class ConditionSnapshotImpl extends EventEmitter implements ConditionSnap
95
95
  for (const fullBrowsePath of this._map.keys()) {
96
96
  const node = this._node_index.get(fullBrowsePath);
97
97
  if (!node) {
98
- // c8 ignore next
98
+ /* c8 ignore next */
99
99
  doDebug && debugLog("cannot node for find key", fullBrowsePath);
100
100
  continue;
101
101
  }
@@ -61,6 +61,9 @@ export function DeviationAlarmHelper_install_setpoint(this: DeviationStuff, opti
61
61
  });
62
62
  // install inputNode monitoring for change
63
63
  this.setpointNodeNode.on("value_changed", (newDataValue: DataValue) => {
64
+ // deliberately the deprecated name, for the same reason as _setStateBasedOnInputValue:
65
+ // an old subclass that overrode `_onSetpointDataValueChange` is still reached, and a
66
+ // new assignment of the published name is reached through the delegate on the impl.
64
67
  this._onSetpointDataValueChange(newDataValue);
65
68
  });
66
69
  } else {
@@ -239,7 +239,7 @@ export class UAAcknowledgeableConditionImplBase<
239
239
  assert(!branch.getConfirmedState(), "already confirmed ?");
240
240
  const conditionEventId = branch.getEventId();
241
241
 
242
- // c8 ignore next
242
+ /* c8 ignore next */
243
243
  doDebug && debugLog("autoConfirmBranch getAckedState ", branch.getAckedState());
244
244
  this._confirm_branch(conditionEventId, comment, branch, "Server/Confirm");
245
245
  }
@@ -290,7 +290,7 @@ export class UAAlarmConditionImplBase extends UAAcknowledgeableConditionImplBase
290
290
 
291
291
  const _node = addressSpace._coerceNode(inputNode);
292
292
  if (_node === null) {
293
- // c8 ignore next
293
+ /* c8 ignore next */
294
294
  doDebug && debugLog(" cannot find nodeId ", inputNode);
295
295
  } else {
296
296
  assert(_node, "Expecting a valid input node");
@@ -570,7 +570,7 @@ export class UAConditionImplBase<T extends UAConditionEvents & ListenerSignature
570
570
  // for the time being , only current branch
571
571
  const currentBranch = this.currentBranch();
572
572
  if (currentBranch.getRetain()) {
573
- // c8 ignore next
573
+ /* c8 ignore next */
574
574
  doDebug && debugLog(` resending condition event for ${this.browseName.toString()}`);
575
575
  this.raiseConditionEvent(currentBranch, false);
576
576
  return 1;
@@ -70,10 +70,21 @@ export class UAExclusiveDeviationAlarmImplBase extends UAExclusiveLimitAlarmImpl
70
70
  return DeviationAlarmHelper_getSetpointValue.call(this);
71
71
  }
72
72
 
73
- public _onSetpointDataValueChange(dataValue: DataValue): void {
73
+ /**
74
+ * What the alarm does when the value of its setpoint node changes: re-evaluate the state
75
+ * of the alarm against the new setpoint, since the deviation it watches has just moved.
76
+ */
77
+ public onSetpointDataValueChange(dataValue: DataValue): void {
74
78
  DeviationAlarmHelper_onSetpointDataValueChange.call(this, dataValue);
75
79
  }
76
80
 
81
+ /**
82
+ * @deprecated assign {@link onSetpointDataValueChange} instead; this delegates to it.
83
+ */
84
+ public _onSetpointDataValueChange(dataValue: DataValue): void {
85
+ this.onSetpointDataValueChange(dataValue);
86
+ }
87
+
77
88
  public _install_setpoint(options: InstallSetPointOptions): void {
78
89
  DeviationAlarmHelper_install_setpoint.call(this, options);
79
90
  }
@@ -79,10 +79,21 @@ export class UANonExclusiveDeviationAlarmImplBase
79
79
  return DeviationAlarmHelper_getSetpointValue.call(this);
80
80
  }
81
81
 
82
- public _onSetpointDataValueChange(dataValue: DataValue): void {
82
+ /**
83
+ * What the alarm does when the value of its setpoint node changes: re-evaluate the state
84
+ * of the alarm against the new setpoint, since the deviation it watches has just moved.
85
+ */
86
+ public onSetpointDataValueChange(dataValue: DataValue): void {
83
87
  DeviationAlarmHelper_onSetpointDataValueChange.call(this, dataValue);
84
88
  }
85
89
 
90
+ /**
91
+ * @deprecated assign {@link onSetpointDataValueChange} instead; this delegates to it.
92
+ */
93
+ public _onSetpointDataValueChange(dataValue: DataValue): void {
94
+ this.onSetpointDataValueChange(dataValue);
95
+ }
96
+
86
97
  public _install_setpoint(options: InstallSetPointOptions): void {
87
98
  DeviationAlarmHelper_install_setpoint.call(this, options);
88
99
  }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @module node-opcua-address-space
3
+ *
4
+ * One clock reading for one bulk load.
5
+ *
6
+ * Constructing a Variable stamps it with `getCurrentClock()`, and so does setting its initial
7
+ * value — twice per variable, thousands of times per nodeset, for a timestamp that means
8
+ * "when this was loaded". The readings differ by microseconds and nothing depends on the
9
+ * difference; the syscall behind them is ~1.4% of a load.
10
+ *
11
+ * The reading is taken once when a load begins and reused until it ends. Two things make that
12
+ * safe rather than merely cheaper:
13
+ *
14
+ * - it is scoped to the **address space being loaded**, not to the process. A server writing
15
+ * to a different address space, or to this one outside a load, still gets a real clock. A
16
+ * module-global freeze would have leaked a stale timestamp into any concurrent write.
17
+ * - it is **reference counted**, so loading a nodeset into an address space that is already
18
+ * mid-load — grafting onto a partially built space — does not end the freeze early.
19
+ *
20
+ * What changes observably: every Variable a single load creates carries the same
21
+ * `sourceTimestamp` instead of timestamps a few microseconds apart. For nodes that came from
22
+ * one file, at one instant, that is arguably the more truthful answer; it is a change all the
23
+ * same, which is why it is confined to loading.
24
+ */
25
+ import { getCurrentClock, type PreciseClock } from "node-opcua-date-time";
26
+
27
+ interface Frozen {
28
+ clock: PreciseClock;
29
+ depth: number;
30
+ }
31
+
32
+ /**
33
+ * Keyed weakly, so an address space that is disposed and dropped takes its entry with it —
34
+ * a load that throws before `endBulkLoadClock` cannot pin one either.
35
+ */
36
+ const frozen = new WeakMap<object, Frozen>();
37
+
38
+ /** begin a load: take the reading the load will stamp everything with */
39
+ export function beginBulkLoadClock(addressSpace: object): void {
40
+ const existing = frozen.get(addressSpace);
41
+ if (existing) {
42
+ existing.depth += 1;
43
+ return;
44
+ }
45
+ frozen.set(addressSpace, { clock: getCurrentClock(), depth: 1 });
46
+ }
47
+
48
+ /** end a load; the innermost end of a nested pair is not the one that thaws it */
49
+ export function endBulkLoadClock(addressSpace: object): void {
50
+ const existing = frozen.get(addressSpace);
51
+ if (!existing) return;
52
+ existing.depth -= 1;
53
+ if (existing.depth <= 0) {
54
+ frozen.delete(addressSpace);
55
+ }
56
+ }
57
+
58
+ /**
59
+ * the clock to stamp a node with: the load's reading while one is in progress for this address
60
+ * space, a fresh reading otherwise.
61
+ */
62
+ export function loadClock(addressSpace: object | null | undefined): PreciseClock {
63
+ const existing = addressSpace ? frozen.get(addressSpace) : undefined;
64
+ return existing ? existing.clock : getCurrentClock();
65
+ }
@@ -25,7 +25,9 @@
25
25
  import type { UAVariable, UAVariableType } from "node-opcua-address-space-base";
26
26
  import { VariableTypeIds } from "node-opcua-constants";
27
27
  import { NodeClass } from "node-opcua-data-model";
28
- import { resolveNodeId } from "node-opcua-nodeid";
28
+ import { NodeId, resolveNodeId } from "node-opcua-nodeid";
29
+ import { SemanticChangeStructureDataType } from "node-opcua-types";
30
+ import { DataType, VariantArrayType } from "node-opcua-variant";
29
31
 
30
32
  /**
31
33
  * the Properties whose value carries the semantics of the DataItem they belong to.
@@ -100,3 +102,39 @@ export function notifySemanticsChangedIfNeeded(property: UAVariable): void {
100
102
  (dataItem as UAVariable & { handle_semantic_changed: (dataValue?: unknown) => void }).handle_semantic_changed();
101
103
  }
102
104
  }
105
+
106
+ /**
107
+ * OPC 10000-5 6.4.31: besides the SemanticsChanged bit on the DataItem's next notification, the
108
+ * Server reports a semantics change as a SemanticChangeEventType on the Server object, carrying
109
+ * the affected Node and its TypeDefinition. A client subscribed to the Server's events learns of
110
+ * the change without monitoring the DataItem itself.
111
+ *
112
+ * Raised from `handle_semantic_changed`, the single point every semantics change goes through, so
113
+ * the event and the bit can never disagree. Modelled on how the address space raises
114
+ * GeneralModelChangeEventType.
115
+ */
116
+ export function raiseSemanticChangeEvent(dataItem: UAVariable): void {
117
+ const addressSpace = dataItem.addressSpace;
118
+ // during construction and teardown there is no Server object to raise the event on
119
+ const server = addressSpace?.rootFolder?.objects?.server;
120
+ if (!server) {
121
+ return;
122
+ }
123
+ const eventTypeNode = addressSpace.findEventType("SemanticChangeEventType");
124
+ if (!eventTypeNode) {
125
+ return;
126
+ }
127
+ const changes = [
128
+ new SemanticChangeStructureDataType({
129
+ affected: dataItem.nodeId,
130
+ affectedType: dataItem.typeDefinitionObj?.nodeId ?? NodeId.nullNodeId
131
+ })
132
+ ];
133
+ server.raiseEvent(eventTypeNode, {
134
+ changes: {
135
+ dataType: DataType.ExtensionObject,
136
+ arrayType: VariantArrayType.Array,
137
+ value: changes
138
+ }
139
+ });
140
+ }
@@ -22,7 +22,7 @@ import { registerNodePromoter } from "../../api/loader/register_node_promoter.js
22
22
  import { UAVariableImpl, UAVariableImplT } from "../ua_variable_impl.js";
23
23
  import { add_dataItem_stuff } from "./add_dataItem_stuff.js";
24
24
 
25
- export { UAMultiStateDiscrete } from "node-opcua-nodeset-ua";
25
+ export type { UAMultiStateDiscrete } from "node-opcua-nodeset-ua";
26
26
 
27
27
  // One declaration, in the api tree, rather than a lesser copy here: this file used to
28
28
  // declare its own UAMultiStateDiscreteEx without the UAVariableT half, so the two drifted
@@ -53,7 +53,7 @@ function removeElementByIndex<T extends ExtensionObject>(uaArrayVariableNode: UA
53
53
  }
54
54
 
55
55
  const hasComponent = uaArrayVariableNode.addressSpace.findReferenceType("HasComponent");
56
- // c8 ignore next
56
+ /* c8 ignore next */
57
57
  if (!hasComponent) {
58
58
  throw new Error("cannot find HasComponent reference type: please check your nodeset file");
59
59
  }
@@ -95,7 +95,7 @@ export function createExtObjArrayNode<T extends ExtensionObject>(
95
95
  const namespace = parentFolder.namespace;
96
96
 
97
97
  const complexVariableType = addressSpace.findVariableType(options.complexVariableType);
98
- // c8 ignore next
98
+ /* c8 ignore next */
99
99
  if (!complexVariableType) {
100
100
  throw new Error("cannot find complex variable type");
101
101
  }
@@ -108,14 +108,14 @@ export function createExtObjArrayNode<T extends ExtensionObject>(
108
108
  assert(!variableType.nodeId.isEmpty());
109
109
 
110
110
  const structure = addressSpace.findDataType("Structure");
111
- // c8 ignore next
111
+ /* c8 ignore next */
112
112
  if (!structure) {
113
113
  throw new Error("Structure Type not found: please check your nodeset file");
114
114
  }
115
115
 
116
116
  const dataType = addressSpace.findDataType(variableType.dataType);
117
117
 
118
- // c8 ignore next
118
+ /* c8 ignore next */
119
119
  if (!dataType) {
120
120
  errorLog(variableType.toString());
121
121
  throw new Error("cannot find Data Type");
@@ -170,7 +170,7 @@ export function bindExtObjArrayNode<T extends ExtensionObject>(
170
170
  const addressSpace = uaArrayVariableNode.addressSpace;
171
171
 
172
172
  const variableType = addressSpace.findVariableType(variableTypeNodeId);
173
- // c8 ignore next
173
+ /* c8 ignore next */
174
174
  if (!variableType || variableType.nodeId.isEmpty()) {
175
175
  throw new Error(`Cannot find VariableType ${variableTypeNodeId.toString()}`);
176
176
  }
@@ -447,12 +447,12 @@ function _historyReadRaw(
447
447
 
448
448
  const session = context.session;
449
449
 
450
- // c8 ignore next
450
+ /* c8 ignore next */
451
451
  if (!session) {
452
452
  throw new Error("Internal Error: context.session not defined");
453
453
  }
454
454
 
455
- // c8 ignore next
455
+ /* c8 ignore next */
456
456
  if (!session.continuationPointManager) {
457
457
  throw new Error("Internal Error: context.session.continuationPointManager not defined");
458
458
  }
@@ -110,6 +110,7 @@ import { UANonExclusiveDeviationAlarmImplBase } from "./alarms_and_conditions/ua
110
110
  import { UANonExclusiveLimitAlarmImplBase } from "./alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js";
111
111
  import { type UAOffNormalAlarmEx, UAOffNormalAlarmImplBase } from "./alarms_and_conditions/ua_off_normal_alarm_impl.js";
112
112
  import { BaseNodeImpl } from "./base_node_impl.js";
113
+ import { BaseNode_getPrivate } from "./base_node_private.js";
113
114
  import { add_dataItem_stuff } from "./data_access/add_dataItem_stuff.js";
114
115
  import { _addMultiStateDiscrete } from "./data_access/ua_multistate_discrete_impl.js";
115
116
  import { _addMultiStateValueDiscrete } from "./data_access/ua_multistate_value_discrete_impl.js";
@@ -140,7 +141,7 @@ function _makeHashKey(nodeId: NodeId): string | number {
140
141
  case NodeIdType.NUMERIC:
141
142
  return nodeId.value as number;
142
143
  default:
143
- // c8 ignore next
144
+ /* c8 ignore next */
144
145
  if (nodeId.identifierType !== NodeIdType.BYTESTRING) {
145
146
  throw new Error("invalid nodeIdType");
146
147
  }
@@ -265,7 +266,7 @@ export class NamespaceImpl implements NamespacePrivate {
265
266
  private defaultRolePermissions?: RolePermissionType[];
266
267
 
267
268
  constructor(options: NamespaceConstructorOptions) {
268
- // c8 ignore next
269
+ /* c8 ignore next */
269
270
  if (!(typeof options.namespaceUri === "string")) {
270
271
  throw new Error(`NamespaceImpl constructor: namespaceUri must exists and be a string : got ${options.namespaceUri}`);
271
272
  }
@@ -830,6 +831,89 @@ export class NamespaceImpl implements NamespacePrivate {
830
831
  });
831
832
  }
832
833
 
834
+ /**
835
+ * Empty the namespace: every node it holds goes, and so does every reference that crossed
836
+ * between one of them and a node of another namespace. The namespace object itself survives,
837
+ * registered under the same index and uri, ready to be populated again - this is a recycle,
838
+ * not a {@link dispose}.
839
+ *
840
+ * Only the references that cross out are severed. A reference between two nodes of this
841
+ * namespace needs no work at all: both ends are about to be dropped and nothing outside will
842
+ * ever ask about them again. On a model grafted onto loaded base nodesets the crossing
843
+ * references are a small fraction of the total, which is what makes this cheaper than
844
+ * deleting the nodes one by one.
845
+ *
846
+ * @internal
847
+ *
848
+ * Callers want {@link IAddressSpace.deleteNamespace}: the rest of the operation - the single
849
+ * model-change transaction, the DataType factory of this namespace, the address space's set
850
+ * of historizing nodes - is address-space state that a namespace has no business reaching
851
+ * into.
852
+ */
853
+ public _deleteAllNodes(): void {
854
+ const addressSpace = this.addressSpace;
855
+ const index = this.index;
856
+
857
+ // a node deleted while someone watches for model changes still has to say so; the probe
858
+ // is skipped wholesale when nobody is listening (see AddressSpace#suspendModelChangeEvents)
859
+ for (const node of this._nodeid_index.values()) {
860
+ _handle_delete_node_model_change_event(node);
861
+ }
862
+
863
+ for (const node of this._nodeid_index.values()) {
864
+ const _private = BaseNode_getPrivate(node);
865
+ // snapshot first: removing the far end of a reference mutates this node's own indexes
866
+ const crossing: UAReference[] = [];
867
+ for (const ref of _private._referenceIdx.values()) {
868
+ if (ref.nodeId.namespace !== index) {
869
+ crossing.push(ref);
870
+ }
871
+ }
872
+ for (const ref of _private._back_referenceIdx.values()) {
873
+ if (ref.nodeId.namespace !== index) {
874
+ crossing.push(ref);
875
+ }
876
+ }
877
+ for (const ref of crossing) {
878
+ const other = addressSpace.findNode(ref.nodeId);
879
+ if (!other) {
880
+ // the other end was never there, or has gone already: nothing holds this
881
+ continue;
882
+ }
883
+ // removeReference copes with the reference being held by either end, and undoes
884
+ // the child accessor, the hierarchical index and the memoized scans on both
885
+ other.removeReference({
886
+ isForward: !ref.isForward,
887
+ nodeId: node.nodeId,
888
+ referenceType: ref.referenceType
889
+ });
890
+ }
891
+ }
892
+
893
+ for (const node of this._nodeid_index.values()) {
894
+ (<BaseNodeImpl>node).dispose();
895
+ }
896
+
897
+ // the per-node unregister of _deleteNode would walk every map entry; emptying them
898
+ // outright says the same thing and is what makes the namespace reusable
899
+ this._nodeid_index = new Map();
900
+ this._aliases = new Map();
901
+ this._objectTypeMap = new Map();
902
+ this._variableTypeMap = new Map();
903
+ this._referenceTypeMap = new Map();
904
+ this._referenceTypeMapInv = new Map();
905
+ this._dataTypeMap = new Map();
906
+
907
+ // the counter restarts, so a second population hands out the same ids as the first; the
908
+ // symbolic name table is kept, for the same reason
909
+ this._nodeIdManager.reset();
910
+
911
+ // the header the nodeset carried, which the next population will set again
912
+ this._requiredModels = undefined;
913
+ this.version = "0.0.0";
914
+ this.publicationDate = new Date(Date.UTC(1900, 0, 1));
915
+ }
916
+
833
917
  /**
834
918
  * @internal
835
919
  */
@@ -1959,6 +2043,12 @@ export class NamespaceImpl implements NamespacePrivate {
1959
2043
  case NodeClass.VariableType:
1960
2044
  this._unregisterVariableType(node as UAVariableType);
1961
2045
  break;
2046
+ case NodeClass.ReferenceType:
2047
+ this._unregisterReferenceType(node as UAReferenceType);
2048
+ break;
2049
+ case NodeClass.DataType:
2050
+ this._unregisterDataType(node as UADataType);
2051
+ break;
1962
2052
  case NodeClass.Object:
1963
2053
  case NodeClass.Variable:
1964
2054
  case NodeClass.Method:
@@ -2101,6 +2191,33 @@ export class NamespaceImpl implements NamespacePrivate {
2101
2191
  this._variableTypeMap.delete(key);
2102
2192
  }
2103
2193
 
2194
+ /**
2195
+ * the mirror of `_registerReferenceType`: both maps it fills have to be emptied, the inverse
2196
+ * one keyed on the inverse name rather than the browse name.
2197
+ *
2198
+ * Only an entry that still points at this very node goes: `_registerReferenceType` does not
2199
+ * refuse a duplicate key the way the object/variable/dataType ones do, so a second reference
2200
+ * type of the same browse name (or the same inverse name) would otherwise have its entry
2201
+ * removed by the deletion of the first.
2202
+ */
2203
+ private _unregisterReferenceType(node: UAReferenceType): void {
2204
+ const key = node.browseName.name || "";
2205
+ if (this._referenceTypeMap.get(key) === node) {
2206
+ this._referenceTypeMap.delete(key);
2207
+ }
2208
+ const inverseKey = node.inverseName?.text || "";
2209
+ if (this._referenceTypeMapInv.get(inverseKey) === node) {
2210
+ this._referenceTypeMapInv.delete(inverseKey);
2211
+ }
2212
+ }
2213
+
2214
+ private _unregisterDataType(node: UADataType): void {
2215
+ const key = node.browseName.name || "";
2216
+ if (this._dataTypeMap.get(key) === node) {
2217
+ this._dataTypeMap.delete(key);
2218
+ }
2219
+ }
2220
+
2104
2221
  /**
2105
2222
  * @private
2106
2223
  */
@@ -30,6 +30,9 @@ export interface NamespacePrivate extends Namespace {
30
30
 
31
31
  _deleteNode(node: BaseNode): void;
32
32
 
33
+ /** @see IAddressSpace.deleteNamespace, which is the way to reach this */
34
+ _deleteAllNodes(): void;
35
+
33
36
  internalCreateNode(options: CreateNodeOptions): BaseNode;
34
37
 
35
38
  registerSymbolicNames: boolean;