node-opcua-address-space 2.183.1 → 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 (741) 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/data_access/ua_multistate_discrete_ex.ts +1 -1
  7. package/api/interfaces/nodeset_loader_options.ts +17 -0
  8. package/api/loader/decode_xml_extension_object.ts +1 -1
  9. package/api/loader/ensure_datatype_extracted.ts +73 -37
  10. package/api/loader/generateAddressSpaceRaw.ts +32 -22
  11. package/api/loader/load_nodeset2.ts +2 -2
  12. package/api/loader/namespace_post_step.ts +1 -1
  13. package/api/loader/narrow_instance_datatypes.ts +22 -9
  14. package/api/loader/nodeset_image_codec.ts +26 -12
  15. package/api/loader/nodeset_record_applier.ts +1 -1
  16. package/api/loader/nodeset_xml_producer.ts +8 -6
  17. package/api/loader/parsers/extension_object_parser.ts +3 -3
  18. package/api/pseudo_session.ts +1 -1
  19. package/bin/{nodeset_equivalence.js → nodeset_equivalence.cjs} +1 -1
  20. package/bin/{opcua-nodeset-image.js → opcua-nodeset-image.cjs} +1 -1
  21. package/bin/{opcua-nodeset-live.js → opcua-nodeset-live.cjs} +2 -2
  22. package/dist/api/address_space_public.d.ts +1 -0
  23. package/dist/api/address_space_public.d.ts.map +1 -0
  24. package/dist/api/address_space_public.js +2 -5
  25. package/dist/api/address_space_public.js.map +1 -1
  26. package/dist/api/address_space_ts.d.ts +1 -0
  27. package/dist/api/address_space_ts.d.ts.map +1 -0
  28. package/dist/api/address_space_ts.js +2 -5
  29. package/dist/api/address_space_ts.js.map +1 -1
  30. package/dist/api/continuation_points/continuation_point_manager.d.ts +1 -0
  31. package/dist/api/continuation_points/continuation_point_manager.d.ts.map +1 -0
  32. package/dist/api/continuation_points/continuation_point_manager.js +13 -17
  33. package/dist/api/continuation_points/continuation_point_manager.js.map +1 -1
  34. package/dist/api/helpers/adjust_browse_direction.d.ts +1 -0
  35. package/dist/api/helpers/adjust_browse_direction.d.ts.map +1 -0
  36. package/dist/api/helpers/adjust_browse_direction.js +2 -5
  37. package/dist/api/helpers/adjust_browse_direction.js.map +1 -1
  38. package/dist/api/helpers/argument_list.d.ts +1 -0
  39. package/dist/api/helpers/argument_list.d.ts.map +1 -0
  40. package/dist/api/helpers/argument_list.js +61 -69
  41. package/dist/api/helpers/argument_list.js.map +1 -1
  42. package/dist/api/helpers/call_helpers.d.ts +1 -0
  43. package/dist/api/helpers/call_helpers.d.ts.map +1 -0
  44. package/dist/api/helpers/call_helpers.js +25 -28
  45. package/dist/api/helpers/call_helpers.js.map +1 -1
  46. package/dist/api/helpers/coerce_enum_value.d.ts +1 -0
  47. package/dist/api/helpers/coerce_enum_value.d.ts.map +1 -0
  48. package/dist/api/helpers/coerce_enum_value.js +15 -17
  49. package/dist/api/helpers/coerce_enum_value.js.map +1 -1
  50. package/dist/api/helpers/dump_tools.d.ts +1 -0
  51. package/dist/api/helpers/dump_tools.d.ts.map +1 -0
  52. package/dist/api/helpers/dump_tools.js +19 -29
  53. package/dist/api/helpers/dump_tools.js.map +1 -1
  54. package/dist/api/helpers/ensure_secure_access.d.ts +1 -0
  55. package/dist/api/helpers/ensure_secure_access.d.ts.map +1 -0
  56. package/dist/api/helpers/ensure_secure_access.js +24 -28
  57. package/dist/api/helpers/ensure_secure_access.js.map +1 -1
  58. package/dist/api/helpers/make_optionals_map.d.ts +1 -0
  59. package/dist/api/helpers/make_optionals_map.d.ts.map +1 -0
  60. package/dist/api/helpers/make_optionals_map.js +1 -4
  61. package/dist/api/helpers/make_optionals_map.js.map +1 -1
  62. package/dist/api/helpers/multiform_func.d.ts +1 -0
  63. package/dist/api/helpers/multiform_func.d.ts.map +1 -0
  64. package/dist/api/helpers/multiform_func.js +4 -8
  65. package/dist/api/helpers/multiform_func.js.map +1 -1
  66. package/dist/api/helpers/resolve_opaque_on_address_space.d.ts +1 -0
  67. package/dist/api/helpers/resolve_opaque_on_address_space.d.ts.map +1 -0
  68. package/dist/api/helpers/resolve_opaque_on_address_space.js +10 -13
  69. package/dist/api/helpers/resolve_opaque_on_address_space.js.map +1 -1
  70. package/dist/api/index.d.ts +3 -1
  71. package/dist/api/index.d.ts.map +1 -0
  72. package/dist/api/index.js +93 -218
  73. package/dist/api/index.js.map +1 -1
  74. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.d.ts +1 -0
  75. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.d.ts.map +1 -0
  76. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js +2 -5
  77. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -1
  78. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.d.ts +1 -0
  79. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.d.ts.map +1 -0
  80. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.js +1 -2
  81. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.d.ts +1 -0
  82. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.d.ts.map +1 -0
  83. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.js +1 -2
  84. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +1 -0
  85. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.d.ts.map +1 -0
  86. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.js +1 -2
  87. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +1 -0
  88. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts.map +1 -0
  89. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +1 -2
  90. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +1 -0
  91. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts.map +1 -0
  92. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.js +1 -2
  93. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +1 -0
  94. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts.map +1 -0
  95. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +1 -2
  96. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +1 -0
  97. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts.map +1 -0
  98. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +1 -2
  99. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +1 -0
  100. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts.map +1 -0
  101. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +1 -2
  102. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +1 -0
  103. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts.map +1 -0
  104. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +1 -2
  105. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +1 -0
  106. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts.map +1 -0
  107. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +1 -2
  108. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +1 -0
  109. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts.map +1 -0
  110. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +1 -2
  111. package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.d.ts +1 -0
  112. package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.d.ts.map +1 -0
  113. package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.js +1 -2
  114. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +1 -0
  115. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts.map +1 -0
  116. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +1 -2
  117. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +1 -0
  118. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts.map +1 -0
  119. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +1 -2
  120. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts +1 -0
  121. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts.map +1 -0
  122. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.js +1 -2
  123. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +1 -0
  124. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts.map +1 -0
  125. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +1 -2
  126. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +1 -0
  127. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.d.ts.map +1 -0
  128. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.js +1 -2
  129. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +1 -0
  130. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts.map +1 -0
  131. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +1 -2
  132. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +1 -0
  133. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts.map +1 -0
  134. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +1 -2
  135. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +1 -0
  136. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts.map +1 -0
  137. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +1 -2
  138. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +1 -0
  139. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts.map +1 -0
  140. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +1 -2
  141. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +1 -0
  142. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts.map +1 -0
  143. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +1 -2
  144. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +1 -0
  145. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts.map +1 -0
  146. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +1 -2
  147. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.d.ts +2 -1
  148. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.d.ts.map +1 -0
  149. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.js +1 -2
  150. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +1 -0
  151. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts.map +1 -0
  152. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.js +1 -2
  153. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.d.ts +1 -0
  154. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.d.ts.map +1 -0
  155. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.js +1 -2
  156. package/dist/api/interfaces/data_access/ua_y_array_item_ex.d.ts +1 -0
  157. package/dist/api/interfaces/data_access/ua_y_array_item_ex.d.ts.map +1 -0
  158. package/dist/api/interfaces/data_access/ua_y_array_item_ex.js +1 -2
  159. package/dist/api/interfaces/extension_object_constructor.d.ts +1 -0
  160. package/dist/api/interfaces/extension_object_constructor.d.ts.map +1 -0
  161. package/dist/api/interfaces/extension_object_constructor.js +1 -2
  162. package/dist/api/interfaces/i_condition_variable_type_setter_options.d.ts +1 -0
  163. package/dist/api/interfaces/i_condition_variable_type_setter_options.d.ts.map +1 -0
  164. package/dist/api/interfaces/i_condition_variable_type_setter_options.js +1 -2
  165. package/dist/api/interfaces/i_set_state_options.d.ts +1 -0
  166. package/dist/api/interfaces/i_set_state_options.d.ts.map +1 -0
  167. package/dist/api/interfaces/i_set_state_options.js +1 -2
  168. package/dist/api/interfaces/nodeset_loader_options.d.ts +18 -0
  169. package/dist/api/interfaces/nodeset_loader_options.d.ts.map +1 -0
  170. package/dist/api/interfaces/nodeset_loader_options.js +1 -2
  171. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +1 -0
  172. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts.map +1 -0
  173. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +1 -2
  174. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.d.ts +1 -0
  175. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.d.ts.map +1 -0
  176. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.js +1 -2
  177. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.d.ts +1 -0
  178. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.d.ts.map +1 -0
  179. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.js +1 -2
  180. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +1 -0
  181. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts.map +1 -0
  182. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.js +1 -2
  183. package/dist/api/interfaces/state_machine/ua_state_machine_type.d.ts +1 -0
  184. package/dist/api/interfaces/state_machine/ua_state_machine_type.d.ts.map +1 -0
  185. package/dist/api/interfaces/state_machine/ua_state_machine_type.js +1 -2
  186. package/dist/api/interfaces/state_machine/ua_state_machine_type.js.map +1 -1
  187. package/dist/api/interfaces/state_machine/ua_transition_ex.d.ts +1 -0
  188. package/dist/api/interfaces/state_machine/ua_transition_ex.d.ts.map +1 -0
  189. package/dist/api/interfaces/state_machine/ua_transition_ex.js +1 -2
  190. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +1 -0
  191. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.d.ts.map +1 -0
  192. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.js +1 -2
  193. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -1
  194. package/dist/api/loader/decode_xml_extension_object.d.ts +1 -0
  195. package/dist/api/loader/decode_xml_extension_object.d.ts.map +1 -0
  196. package/dist/api/loader/decode_xml_extension_object.js +13 -17
  197. package/dist/api/loader/decode_xml_extension_object.js.map +1 -1
  198. package/dist/api/loader/ensure_datatype_extracted.d.ts +1 -0
  199. package/dist/api/loader/ensure_datatype_extracted.d.ts.map +1 -0
  200. package/dist/api/loader/ensure_datatype_extracted.js +83 -52
  201. package/dist/api/loader/ensure_datatype_extracted.js.map +1 -1
  202. package/dist/api/loader/generateAddressSpaceRaw.d.ts +1 -0
  203. package/dist/api/loader/generateAddressSpaceRaw.d.ts.map +1 -0
  204. package/dist/api/loader/generateAddressSpaceRaw.js +76 -74
  205. package/dist/api/loader/generateAddressSpaceRaw.js.map +1 -1
  206. package/dist/api/loader/load_nodeset2.d.ts +1 -0
  207. package/dist/api/loader/load_nodeset2.d.ts.map +1 -0
  208. package/dist/api/loader/load_nodeset2.js +44 -51
  209. package/dist/api/loader/load_nodeset2.js.map +1 -1
  210. package/dist/api/loader/make_semver_compatible.d.ts +1 -0
  211. package/dist/api/loader/make_semver_compatible.d.ts.map +1 -0
  212. package/dist/api/loader/make_semver_compatible.js +1 -4
  213. package/dist/api/loader/make_semver_compatible.js.map +1 -1
  214. package/dist/api/loader/make_xml_extension_object_parser.d.ts +1 -0
  215. package/dist/api/loader/make_xml_extension_object_parser.d.ts.map +1 -0
  216. package/dist/api/loader/make_xml_extension_object_parser.js +37 -40
  217. package/dist/api/loader/make_xml_extension_object_parser.js.map +1 -1
  218. package/dist/api/loader/namespace_post_step.d.ts +1 -0
  219. package/dist/api/loader/namespace_post_step.d.ts.map +1 -0
  220. package/dist/api/loader/namespace_post_step.js +12 -17
  221. package/dist/api/loader/namespace_post_step.js.map +1 -1
  222. package/dist/api/loader/narrow_instance_datatypes.d.ts +1 -0
  223. package/dist/api/loader/narrow_instance_datatypes.d.ts.map +1 -0
  224. package/dist/api/loader/narrow_instance_datatypes.js +38 -28
  225. package/dist/api/loader/narrow_instance_datatypes.js.map +1 -1
  226. package/dist/api/loader/nodeset_builtin_formats.d.ts +1 -0
  227. package/dist/api/loader/nodeset_builtin_formats.d.ts.map +1 -0
  228. package/dist/api/loader/nodeset_builtin_formats.js +20 -25
  229. package/dist/api/loader/nodeset_builtin_formats.js.map +1 -1
  230. package/dist/api/loader/nodeset_format.d.ts +1 -0
  231. package/dist/api/loader/nodeset_format.d.ts.map +1 -0
  232. package/dist/api/loader/nodeset_format.js +4 -10
  233. package/dist/api/loader/nodeset_format.js.map +1 -1
  234. package/dist/api/loader/nodeset_image.d.ts +1 -0
  235. package/dist/api/loader/nodeset_image.d.ts.map +1 -0
  236. package/dist/api/loader/nodeset_image.js +38 -54
  237. package/dist/api/loader/nodeset_image.js.map +1 -1
  238. package/dist/api/loader/nodeset_image_codec.d.ts +1 -0
  239. package/dist/api/loader/nodeset_image_codec.d.ts.map +1 -0
  240. package/dist/api/loader/nodeset_image_codec.js +118 -116
  241. package/dist/api/loader/nodeset_image_codec.js.map +1 -1
  242. package/dist/api/loader/nodeset_image_store.d.ts +1 -0
  243. package/dist/api/loader/nodeset_image_store.d.ts.map +1 -0
  244. package/dist/api/loader/nodeset_image_store.js +5 -11
  245. package/dist/api/loader/nodeset_image_store.js.map +1 -1
  246. package/dist/api/loader/nodeset_record.d.ts +1 -0
  247. package/dist/api/loader/nodeset_record.d.ts.map +1 -0
  248. package/dist/api/loader/nodeset_record.js +3 -7
  249. package/dist/api/loader/nodeset_record.js.map +1 -1
  250. package/dist/api/loader/nodeset_record_applier.d.ts +1 -0
  251. package/dist/api/loader/nodeset_record_applier.d.ts.map +1 -0
  252. package/dist/api/loader/nodeset_record_applier.js +89 -97
  253. package/dist/api/loader/nodeset_record_applier.js.map +1 -1
  254. package/dist/api/loader/nodeset_records_to_xml.d.ts +1 -0
  255. package/dist/api/loader/nodeset_records_to_xml.d.ts.map +1 -0
  256. package/dist/api/loader/nodeset_records_to_xml.js +82 -88
  257. package/dist/api/loader/nodeset_records_to_xml.js.map +1 -1
  258. package/dist/api/loader/nodeset_source.d.ts +1 -0
  259. package/dist/api/loader/nodeset_source.d.ts.map +1 -0
  260. package/dist/api/loader/nodeset_source.js +14 -21
  261. package/dist/api/loader/nodeset_source.js.map +1 -1
  262. package/dist/api/loader/nodeset_source_helpers.d.ts +1 -0
  263. package/dist/api/loader/nodeset_source_helpers.d.ts.map +1 -0
  264. package/dist/api/loader/nodeset_source_helpers.js +2 -6
  265. package/dist/api/loader/nodeset_source_helpers.js.map +1 -1
  266. package/dist/api/loader/nodeset_to_image.d.ts +1 -0
  267. package/dist/api/loader/nodeset_to_image.d.ts.map +1 -0
  268. package/dist/api/loader/nodeset_to_image.js +12 -15
  269. package/dist/api/loader/nodeset_to_image.js.map +1 -1
  270. package/dist/api/loader/nodeset_xml_header.d.ts +1 -0
  271. package/dist/api/loader/nodeset_xml_header.d.ts.map +1 -0
  272. package/dist/api/loader/nodeset_xml_header.js +9 -14
  273. package/dist/api/loader/nodeset_xml_header.js.map +1 -1
  274. package/dist/api/loader/nodeset_xml_primitives.d.ts +1 -0
  275. package/dist/api/loader/nodeset_xml_primitives.d.ts.map +1 -0
  276. package/dist/api/loader/nodeset_xml_primitives.js +32 -53
  277. package/dist/api/loader/nodeset_xml_primitives.js.map +1 -1
  278. package/dist/api/loader/nodeset_xml_producer.d.ts +1 -0
  279. package/dist/api/loader/nodeset_xml_producer.d.ts.map +1 -0
  280. package/dist/api/loader/nodeset_xml_producer.js +49 -51
  281. package/dist/api/loader/nodeset_xml_producer.js.map +1 -1
  282. package/dist/api/loader/parsers/extension_object_parser.d.ts +1 -0
  283. package/dist/api/loader/parsers/extension_object_parser.d.ts.map +1 -0
  284. package/dist/api/loader/parsers/extension_object_parser.js +49 -57
  285. package/dist/api/loader/parsers/extension_object_parser.js.map +1 -1
  286. package/dist/api/loader/parsers/localized_text_parser.d.ts +1 -0
  287. package/dist/api/loader/parsers/localized_text_parser.d.ts.map +1 -0
  288. package/dist/api/loader/parsers/localized_text_parser.js +3 -6
  289. package/dist/api/loader/parsers/localized_text_parser.js.map +1 -1
  290. package/dist/api/loader/parsers/nodeid_parser.d.ts +1 -0
  291. package/dist/api/loader/parsers/nodeid_parser.d.ts.map +1 -0
  292. package/dist/api/loader/parsers/nodeid_parser.js +3 -7
  293. package/dist/api/loader/parsers/nodeid_parser.js.map +1 -1
  294. package/dist/api/loader/parsers/qualified_name_parser.d.ts +1 -0
  295. package/dist/api/loader/parsers/qualified_name_parser.d.ts.map +1 -0
  296. package/dist/api/loader/parsers/qualified_name_parser.js +5 -9
  297. package/dist/api/loader/parsers/qualified_name_parser.js.map +1 -1
  298. package/dist/api/loader/parsers/variant_parser.d.ts +1 -0
  299. package/dist/api/loader/parsers/variant_parser.d.ts.map +1 -0
  300. package/dist/api/loader/parsers/variant_parser.js +59 -63
  301. package/dist/api/loader/parsers/variant_parser.js.map +1 -1
  302. package/dist/api/loader/register_node_promoter.d.ts +1 -0
  303. package/dist/api/loader/register_node_promoter.d.ts.map +1 -0
  304. package/dist/api/loader/register_node_promoter.js +4 -7
  305. package/dist/api/loader/register_node_promoter.js.map +1 -1
  306. package/dist/api/namespace.d.ts +1 -0
  307. package/dist/api/namespace.d.ts.map +1 -0
  308. package/dist/api/namespace.js +1 -2
  309. package/dist/api/namespace_alarm_and_condition.d.ts +1 -0
  310. package/dist/api/namespace_alarm_and_condition.d.ts.map +1 -0
  311. package/dist/api/namespace_alarm_and_condition.js +1 -2
  312. package/dist/api/namespace_data_access.d.ts +1 -0
  313. package/dist/api/namespace_data_access.d.ts.map +1 -0
  314. package/dist/api/namespace_data_access.js +1 -2
  315. package/dist/api/namespace_machine_state.d.ts +1 -0
  316. package/dist/api/namespace_machine_state.d.ts.map +1 -0
  317. package/dist/api/namespace_machine_state.js +1 -2
  318. package/dist/api/namespace_of.d.ts +1 -0
  319. package/dist/api/namespace_of.d.ts.map +1 -0
  320. package/dist/api/namespace_of.js +1 -4
  321. package/dist/api/namespace_of.js.map +1 -1
  322. package/dist/api/pseudo_session.d.ts +1 -0
  323. package/dist/api/pseudo_session.d.ts.map +1 -0
  324. package/dist/api/pseudo_session.js +56 -62
  325. package/dist/api/pseudo_session.js.map +1 -1
  326. package/dist/api/session_context.d.ts +1 -0
  327. package/dist/api/session_context.d.ts.map +1 -0
  328. package/dist/api/session_context.js +60 -68
  329. package/dist/api/session_context.js.map +1 -1
  330. package/dist/api/set_namespace_meta_data.d.ts +1 -0
  331. package/dist/api/set_namespace_meta_data.d.ts.map +1 -0
  332. package/dist/api/set_namespace_meta_data.js +10 -13
  333. package/dist/api/set_namespace_meta_data.js.map +1 -1
  334. package/dist/api/ua_addin.d.ts +1 -0
  335. package/dist/api/ua_addin.d.ts.map +1 -0
  336. package/dist/api/ua_addin.js +9 -13
  337. package/dist/api/ua_addin.js.map +1 -1
  338. package/dist/api/ua_interface.d.ts +1 -0
  339. package/dist/api/ua_interface.d.ts.map +1 -0
  340. package/dist/api/ua_interface.js +5 -8
  341. package/dist/api/ua_interface.js.map +1 -1
  342. package/dist/api/ua_root_folder.d.ts +1 -0
  343. package/dist/api/ua_root_folder.d.ts.map +1 -0
  344. package/dist/api/ua_root_folder.js +1 -2
  345. package/dist/api/ua_two_state_variable_ex.d.ts +1 -0
  346. package/dist/api/ua_two_state_variable_ex.d.ts.map +1 -0
  347. package/dist/api/ua_two_state_variable_ex.js +1 -2
  348. package/dist/api/xml_writer.d.ts +1 -0
  349. package/dist/api/xml_writer.d.ts.map +1 -0
  350. package/dist/api/xml_writer.js +1 -2
  351. package/dist/impl/_instantiate_helpers.d.ts +1 -0
  352. package/dist/impl/_instantiate_helpers.d.ts.map +1 -0
  353. package/dist/impl/_instantiate_helpers.js +25 -31
  354. package/dist/impl/_instantiate_helpers.js.map +1 -1
  355. package/dist/impl/_mandatory_child_or_requested_optional_filter.d.ts +1 -0
  356. package/dist/impl/_mandatory_child_or_requested_optional_filter.d.ts.map +1 -0
  357. package/dist/impl/_mandatory_child_or_requested_optional_filter.js +16 -20
  358. package/dist/impl/_mandatory_child_or_requested_optional_filter.js.map +1 -1
  359. package/dist/impl/address_space.d.ts +40 -0
  360. package/dist/impl/address_space.d.ts.map +1 -0
  361. package/dist/impl/address_space.js +246 -189
  362. package/dist/impl/address_space.js.map +1 -1
  363. package/dist/impl/address_space_change_event_tools.d.ts +1 -0
  364. package/dist/impl/address_space_change_event_tools.d.ts.map +1 -0
  365. package/dist/impl/address_space_change_event_tools.js +31 -29
  366. package/dist/impl/address_space_change_event_tools.js.map +1 -1
  367. package/dist/impl/address_space_private.d.ts +2 -0
  368. package/dist/impl/address_space_private.d.ts.map +1 -0
  369. package/dist/impl/address_space_private.js +1 -2
  370. package/dist/impl/address_space_private.js.map +1 -1
  371. package/dist/impl/alarms_and_conditions/condition.d.ts +1 -0
  372. package/dist/impl/alarms_and_conditions/condition.d.ts.map +1 -0
  373. package/dist/impl/alarms_and_conditions/condition.js +1 -2
  374. package/dist/impl/alarms_and_conditions/condition.js.map +1 -1
  375. package/dist/impl/alarms_and_conditions/condition_info_impl.d.ts +1 -0
  376. package/dist/impl/alarms_and_conditions/condition_info_impl.d.ts.map +1 -0
  377. package/dist/impl/alarms_and_conditions/condition_info_impl.js +3 -7
  378. package/dist/impl/alarms_and_conditions/condition_info_impl.js.map +1 -1
  379. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.d.ts +1 -0
  380. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.d.ts.map +1 -0
  381. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js +77 -81
  382. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  383. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.d.ts +1 -0
  384. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.d.ts.map +1 -0
  385. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js +14 -20
  386. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
  387. package/dist/impl/alarms_and_conditions/index.d.ts +1 -0
  388. package/dist/impl/alarms_and_conditions/index.d.ts.map +1 -0
  389. package/dist/impl/alarms_and_conditions/index.js +13 -29
  390. package/dist/impl/alarms_and_conditions/index.js.map +1 -1
  391. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +1 -0
  392. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts.map +1 -0
  393. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +60 -65
  394. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
  395. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.d.ts +1 -0
  396. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.d.ts.map +1 -0
  397. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js +53 -59
  398. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  399. package/dist/impl/alarms_and_conditions/ua_base_event_impl.d.ts +1 -0
  400. package/dist/impl/alarms_and_conditions/ua_base_event_impl.d.ts.map +1 -0
  401. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js +12 -16
  402. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js.map +1 -1
  403. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +1 -0
  404. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts.map +1 -0
  405. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +34 -39
  406. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  407. package/dist/impl/alarms_and_conditions/ua_condition_impl.d.ts +1 -0
  408. package/dist/impl/alarms_and_conditions/ua_condition_impl.d.ts.map +1 -0
  409. package/dist/impl/alarms_and_conditions/ua_condition_impl.js +140 -148
  410. package/dist/impl/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  411. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +1 -0
  412. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.d.ts.map +1 -0
  413. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js +6 -10
  414. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -1
  415. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +1 -0
  416. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts.map +1 -0
  417. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +18 -22
  418. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  419. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +1 -0
  420. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts.map +1 -0
  421. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +3 -7
  422. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -1
  423. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +1 -0
  424. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts.map +1 -0
  425. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +14 -18
  426. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  427. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +1 -0
  428. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts.map +1 -0
  429. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +2 -6
  430. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -1
  431. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.d.ts +1 -0
  432. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.d.ts.map +1 -0
  433. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js +35 -39
  434. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  435. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +1 -0
  436. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts.map +1 -0
  437. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +17 -21
  438. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  439. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +1 -0
  440. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts.map +1 -0
  441. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +27 -31
  442. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  443. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +1 -0
  444. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts.map +1 -0
  445. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js +18 -22
  446. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  447. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +1 -0
  448. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts.map +1 -0
  449. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +3 -7
  450. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
  451. package/dist/impl/apply_condition_refresh.d.ts +1 -0
  452. package/dist/impl/apply_condition_refresh.d.ts.map +1 -0
  453. package/dist/impl/apply_condition_refresh.js +1 -4
  454. package/dist/impl/apply_condition_refresh.js.map +1 -1
  455. package/dist/impl/base_node_impl.d.ts +1 -0
  456. package/dist/impl/base_node_impl.d.ts.map +1 -0
  457. package/dist/impl/base_node_impl.js +279 -292
  458. package/dist/impl/base_node_impl.js.map +1 -1
  459. package/dist/impl/base_node_private.d.ts +1 -0
  460. package/dist/impl/base_node_private.d.ts.map +1 -0
  461. package/dist/impl/base_node_private.js +168 -199
  462. package/dist/impl/base_node_private.js.map +1 -1
  463. package/dist/impl/bulk_load_clock.d.ts +35 -0
  464. package/dist/impl/bulk_load_clock.d.ts.map +1 -0
  465. package/dist/impl/bulk_load_clock.js +58 -0
  466. package/dist/impl/bulk_load_clock.js.map +1 -0
  467. package/dist/impl/check_value_rank_compatibility.d.ts +1 -0
  468. package/dist/impl/check_value_rank_compatibility.d.ts.map +1 -0
  469. package/dist/impl/check_value_rank_compatibility.js +1 -4
  470. package/dist/impl/check_value_rank_compatibility.js.map +1 -1
  471. package/dist/impl/child_accessors.d.ts +1 -0
  472. package/dist/impl/child_accessors.d.ts.map +1 -0
  473. package/dist/impl/child_accessors.js +10 -20
  474. package/dist/impl/child_accessors.js.map +1 -1
  475. package/dist/impl/data_access/add_dataItem_stuff.d.ts +1 -0
  476. package/dist/impl/data_access/add_dataItem_stuff.d.ts.map +1 -0
  477. package/dist/impl/data_access/add_dataItem_stuff.js +6 -9
  478. package/dist/impl/data_access/add_dataItem_stuff.js.map +1 -1
  479. package/dist/impl/data_access/adjust_datavalue_status_code.d.ts +1 -0
  480. package/dist/impl/data_access/adjust_datavalue_status_code.d.ts.map +1 -0
  481. package/dist/impl/data_access/adjust_datavalue_status_code.js +9 -12
  482. package/dist/impl/data_access/adjust_datavalue_status_code.js.map +1 -1
  483. package/dist/impl/data_access/semantics_changed.d.ts +12 -0
  484. package/dist/impl/data_access/semantics_changed.d.ts.map +1 -0
  485. package/dist/impl/data_access/semantics_changed.js +44 -10
  486. package/dist/impl/data_access/semantics_changed.js.map +1 -1
  487. package/dist/impl/data_access/ua_multistate_discrete_impl.d.ts +2 -1
  488. package/dist/impl/data_access/ua_multistate_discrete_impl.d.ts.map +1 -0
  489. package/dist/impl/data_access/ua_multistate_discrete_impl.js +35 -41
  490. package/dist/impl/data_access/ua_multistate_discrete_impl.js.map +1 -1
  491. package/dist/impl/data_access/ua_multistate_value_discrete_impl.d.ts +1 -0
  492. package/dist/impl/data_access/ua_multistate_value_discrete_impl.d.ts.map +1 -0
  493. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js +71 -78
  494. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js.map +1 -1
  495. package/dist/impl/data_access/ua_two_state_discrete_impl.d.ts +1 -0
  496. package/dist/impl/data_access/ua_two_state_discrete_impl.d.ts.map +1 -0
  497. package/dist/impl/data_access/ua_two_state_discrete_impl.js +27 -36
  498. package/dist/impl/data_access/ua_two_state_discrete_impl.js.map +1 -1
  499. package/dist/impl/event_data.d.ts +1 -0
  500. package/dist/impl/event_data.d.ts.map +1 -0
  501. package/dist/impl/event_data.js +15 -19
  502. package/dist/impl/event_data.js.map +1 -1
  503. package/dist/impl/event_layout.d.ts +1 -0
  504. package/dist/impl/event_layout.d.ts.map +1 -0
  505. package/dist/impl/event_layout.js +12 -16
  506. package/dist/impl/event_layout.js.map +1 -1
  507. package/dist/impl/extension_object_array_node.d.ts +1 -0
  508. package/dist/impl/extension_object_array_node.d.ts.map +1 -0
  509. package/dist/impl/extension_object_array_node.js +47 -53
  510. package/dist/impl/extension_object_array_node.js.map +1 -1
  511. package/dist/impl/get_basic_datatype.d.ts +1 -0
  512. package/dist/impl/get_basic_datatype.d.ts.map +1 -0
  513. package/dist/impl/get_basic_datatype.js +6 -10
  514. package/dist/impl/get_basic_datatype.js.map +1 -1
  515. package/dist/impl/handle_hierarchy_parent.d.ts +1 -0
  516. package/dist/impl/handle_hierarchy_parent.d.ts.map +1 -0
  517. package/dist/impl/handle_hierarchy_parent.js +26 -30
  518. package/dist/impl/handle_hierarchy_parent.js.map +1 -1
  519. package/dist/impl/historical_access/address_space_historical_data_node.d.ts +1 -0
  520. package/dist/impl/historical_access/address_space_historical_data_node.d.ts.map +1 -0
  521. package/dist/impl/historical_access/address_space_historical_data_node.js +76 -84
  522. package/dist/impl/historical_access/address_space_historical_data_node.js.map +1 -1
  523. package/dist/impl/historical_access/read_processed_details_hook.d.ts +1 -0
  524. package/dist/impl/historical_access/read_processed_details_hook.d.ts.map +1 -0
  525. package/dist/impl/historical_access/read_processed_details_hook.js +1 -4
  526. package/dist/impl/historical_access/read_processed_details_hook.js.map +1 -1
  527. package/dist/impl/historizer_factory.d.ts +1 -0
  528. package/dist/impl/historizer_factory.d.ts.map +1 -0
  529. package/dist/impl/historizer_factory.js +1 -4
  530. package/dist/impl/historizer_factory.js.map +1 -1
  531. package/dist/impl/idx_iterator.d.ts +1 -0
  532. package/dist/impl/idx_iterator.d.ts.map +1 -0
  533. package/dist/impl/idx_iterator.js +1 -5
  534. package/dist/impl/idx_iterator.js.map +1 -1
  535. package/dist/impl/namespace_impl.d.ts +32 -0
  536. package/dist/impl/namespace_impl.d.ts.map +1 -0
  537. package/dist/impl/namespace_impl.js +418 -318
  538. package/dist/impl/namespace_impl.js.map +1 -1
  539. package/dist/impl/namespace_private.d.ts +3 -0
  540. package/dist/impl/namespace_private.d.ts.map +1 -0
  541. package/dist/impl/namespace_private.js +3 -6
  542. package/dist/impl/namespace_private.js.map +1 -1
  543. package/dist/impl/nodeid_manager.d.ts +11 -0
  544. package/dist/impl/nodeid_manager.d.ts.map +1 -0
  545. package/dist/impl/nodeid_manager.js +52 -44
  546. package/dist/impl/nodeid_manager.js.map +1 -1
  547. package/dist/impl/nodeset_tools/adjust_namespace_array.d.ts +1 -0
  548. package/dist/impl/nodeset_tools/adjust_namespace_array.d.ts.map +1 -0
  549. package/dist/impl/nodeset_tools/adjust_namespace_array.js +1 -4
  550. package/dist/impl/nodeset_tools/adjust_namespace_array.js.map +1 -1
  551. package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts +1 -0
  552. package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts.map +1 -0
  553. package/dist/impl/nodeset_tools/construct_namespace_dependency.js +28 -39
  554. package/dist/impl/nodeset_tools/construct_namespace_dependency.js.map +1 -1
  555. package/dist/impl/nodeset_tools/dump_to_bsd.d.ts +1 -0
  556. package/dist/impl/nodeset_tools/dump_to_bsd.d.ts.map +1 -0
  557. package/dist/impl/nodeset_tools/dump_to_bsd.js +14 -20
  558. package/dist/impl/nodeset_tools/dump_to_bsd.js.map +1 -1
  559. package/dist/impl/nodeset_tools/nodeset_to_records.d.ts +1 -0
  560. package/dist/impl/nodeset_tools/nodeset_to_records.d.ts.map +1 -0
  561. package/dist/impl/nodeset_tools/nodeset_to_records.js +125 -139
  562. package/dist/impl/nodeset_tools/nodeset_to_records.js.map +1 -1
  563. package/dist/impl/nodeset_tools/nodeset_to_xml.d.ts +1 -0
  564. package/dist/impl/nodeset_tools/nodeset_to_xml.d.ts.map +1 -0
  565. package/dist/impl/nodeset_tools/nodeset_to_xml.js +190 -202
  566. package/dist/impl/nodeset_tools/nodeset_to_xml.js.map +1 -1
  567. package/dist/impl/private_namespace.d.ts +1 -0
  568. package/dist/impl/private_namespace.d.ts.map +1 -0
  569. package/dist/impl/private_namespace.js +3 -8
  570. package/dist/impl/private_namespace.js.map +1 -1
  571. package/dist/impl/reference_impl.d.ts +1 -0
  572. package/dist/impl/reference_impl.d.ts.map +1 -0
  573. package/dist/impl/reference_impl.js +24 -37
  574. package/dist/impl/reference_impl.js.map +1 -1
  575. package/dist/impl/reference_type_version.d.ts +1 -0
  576. package/dist/impl/reference_type_version.d.ts.map +1 -0
  577. package/dist/impl/reference_type_version.js +2 -5
  578. package/dist/impl/reference_type_version.js.map +1 -1
  579. package/dist/impl/role_permissions.d.ts +1 -0
  580. package/dist/impl/role_permissions.d.ts.map +1 -0
  581. package/dist/impl/role_permissions.js +3 -6
  582. package/dist/impl/role_permissions.js.map +1 -1
  583. package/dist/impl/state_machine/finite_state_machine.d.ts +1 -0
  584. package/dist/impl/state_machine/finite_state_machine.d.ts.map +1 -0
  585. package/dist/impl/state_machine/finite_state_machine.js +123 -97
  586. package/dist/impl/state_machine/finite_state_machine.js.map +1 -1
  587. package/dist/impl/state_machine/ua_shelving_state_machine_ex.d.ts +1 -0
  588. package/dist/impl/state_machine/ua_shelving_state_machine_ex.d.ts.map +1 -0
  589. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js +57 -62
  590. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js.map +1 -1
  591. package/dist/impl/state_machine/ua_two_state_variable.d.ts +1 -0
  592. package/dist/impl/state_machine/ua_two_state_variable.d.ts.map +1 -0
  593. package/dist/impl/state_machine/ua_two_state_variable.js +56 -63
  594. package/dist/impl/state_machine/ua_two_state_variable.js.map +1 -1
  595. package/dist/impl/tool_isSubtypeOf.d.ts +1 -0
  596. package/dist/impl/tool_isSubtypeOf.d.ts.map +1 -0
  597. package/dist/impl/tool_isSubtypeOf.js +27 -34
  598. package/dist/impl/tool_isSubtypeOf.js.map +1 -1
  599. package/dist/impl/ua_condition_type.d.ts +1 -0
  600. package/dist/impl/ua_condition_type.d.ts.map +1 -0
  601. package/dist/impl/ua_condition_type.js +1 -2
  602. package/dist/impl/ua_data_type_impl.d.ts +1 -0
  603. package/dist/impl/ua_data_type_impl.d.ts.map +1 -0
  604. package/dist/impl/ua_data_type_impl.js +99 -83
  605. package/dist/impl/ua_data_type_impl.js.map +1 -1
  606. package/dist/impl/ua_method_impl.d.ts +3 -2
  607. package/dist/impl/ua_method_impl.d.ts.map +1 -0
  608. package/dist/impl/ua_method_impl.js +74 -78
  609. package/dist/impl/ua_method_impl.js.map +1 -1
  610. package/dist/impl/ua_object_impl.d.ts +1 -0
  611. package/dist/impl/ua_object_impl.d.ts.map +1 -0
  612. package/dist/impl/ua_object_impl.js +48 -51
  613. package/dist/impl/ua_object_impl.js.map +1 -1
  614. package/dist/impl/ua_object_type_impl.d.ts +1 -0
  615. package/dist/impl/ua_object_type_impl.d.ts.map +1 -0
  616. package/dist/impl/ua_object_type_impl.js +35 -39
  617. package/dist/impl/ua_object_type_impl.js.map +1 -1
  618. package/dist/impl/ua_reference_type_impl.d.ts +2 -1
  619. package/dist/impl/ua_reference_type_impl.d.ts.map +1 -0
  620. package/dist/impl/ua_reference_type_impl.js +41 -45
  621. package/dist/impl/ua_reference_type_impl.js.map +1 -1
  622. package/dist/impl/ua_variable_impl.d.ts +1 -0
  623. package/dist/impl/ua_variable_impl.d.ts.map +1 -0
  624. package/dist/impl/ua_variable_impl.js +373 -376
  625. package/dist/impl/ua_variable_impl.js.map +1 -1
  626. package/dist/impl/ua_variable_impl_ext_obj.d.ts +1 -0
  627. package/dist/impl/ua_variable_impl_ext_obj.d.ts.map +1 -0
  628. package/dist/impl/ua_variable_impl_ext_obj.js +79 -97
  629. package/dist/impl/ua_variable_impl_ext_obj.js.map +1 -1
  630. package/dist/impl/ua_variable_type_impl.d.ts +1 -0
  631. package/dist/impl/ua_variable_type_impl.d.ts.map +1 -0
  632. package/dist/impl/ua_variable_type_impl.js +77 -84
  633. package/dist/impl/ua_variable_type_impl.js.map +1 -1
  634. package/dist/impl/ua_view_impl.d.ts +1 -0
  635. package/dist/impl/ua_view_impl.d.ts.map +1 -0
  636. package/dist/impl/ua_view_impl.js +18 -22
  637. package/dist/impl/ua_view_impl.js.map +1 -1
  638. package/dist/impl/validate_data_type_correctness.d.ts +1 -0
  639. package/dist/impl/validate_data_type_correctness.d.ts.map +1 -0
  640. package/dist/impl/validate_data_type_correctness.js +24 -30
  641. package/dist/impl/validate_data_type_correctness.js.map +1 -1
  642. package/dist/tsconfig_base.tsbuildinfo +1 -1
  643. package/distHelpers/add_event_generator_object.d.ts +1 -0
  644. package/distHelpers/add_event_generator_object.d.ts.map +1 -0
  645. package/distHelpers/add_event_generator_object.js +8 -11
  646. package/distHelpers/add_event_generator_object.js.map +1 -1
  647. package/distHelpers/address_space_digest.d.ts +1 -0
  648. package/distHelpers/address_space_digest.d.ts.map +1 -0
  649. package/distHelpers/address_space_digest.js +1 -5
  650. package/distHelpers/address_space_digest.js.map +1 -1
  651. package/distHelpers/alarms_and_conditions_demo.d.ts +1 -0
  652. package/distHelpers/alarms_and_conditions_demo.d.ts.map +1 -0
  653. package/distHelpers/alarms_and_conditions_demo.js +8 -11
  654. package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
  655. package/distHelpers/assertHasMatchingReference.d.ts +1 -0
  656. package/distHelpers/assertHasMatchingReference.d.ts.map +1 -0
  657. package/distHelpers/assertHasMatchingReference.js +6 -9
  658. package/distHelpers/assertHasMatchingReference.js.map +1 -1
  659. package/distHelpers/boiler_system.d.ts +1 -0
  660. package/distHelpers/boiler_system.d.ts.map +1 -0
  661. package/distHelpers/boiler_system.js +36 -40
  662. package/distHelpers/boiler_system.js.map +1 -1
  663. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +1 -0
  664. package/distHelpers/create_minimalist_address_space_nodeset.d.ts.map +1 -0
  665. package/distHelpers/create_minimalist_address_space_nodeset.js +29 -35
  666. package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -1
  667. package/distHelpers/date_utils.d.ts +1 -0
  668. package/distHelpers/date_utils.d.ts.map +1 -0
  669. package/distHelpers/date_utils.js +1 -4
  670. package/distHelpers/date_utils.js.map +1 -1
  671. package/distHelpers/dump_statemachine.d.ts +1 -0
  672. package/distHelpers/dump_statemachine.d.ts.map +1 -0
  673. package/distHelpers/dump_statemachine.js +1 -2
  674. package/distHelpers/dump_statemachine.js.map +1 -1
  675. package/distHelpers/get_address_space_fixture.d.ts +1 -0
  676. package/distHelpers/get_address_space_fixture.d.ts.map +1 -0
  677. package/distHelpers/get_address_space_fixture.js +12 -18
  678. package/distHelpers/get_address_space_fixture.js.map +1 -1
  679. package/distHelpers/get_mini_address_space.d.ts +1 -0
  680. package/distHelpers/get_mini_address_space.d.ts.map +1 -0
  681. package/distHelpers/get_mini_address_space.js +12 -18
  682. package/distHelpers/get_mini_address_space.js.map +1 -1
  683. package/distHelpers/index.d.ts +1 -0
  684. package/distHelpers/index.d.ts.map +1 -0
  685. package/distHelpers/index.js +10 -26
  686. package/distHelpers/index.js.map +1 -1
  687. package/distHelpers/mock_session.d.ts +1 -0
  688. package/distHelpers/mock_session.d.ts.map +1 -0
  689. package/distHelpers/mock_session.js +11 -16
  690. package/distHelpers/mock_session.js.map +1 -1
  691. package/distNodeJS/address_space_digest.d.ts +1 -0
  692. package/distNodeJS/address_space_digest.d.ts.map +1 -0
  693. package/distNodeJS/address_space_digest.js +3 -6
  694. package/distNodeJS/address_space_digest.js.map +1 -1
  695. package/distNodeJS/generate_address_space.d.ts +1 -0
  696. package/distNodeJS/generate_address_space.d.ts.map +1 -0
  697. package/distNodeJS/generate_address_space.js +67 -97
  698. package/distNodeJS/generate_address_space.js.map +1 -1
  699. package/distNodeJS/index.d.ts +1 -0
  700. package/distNodeJS/index.d.ts.map +1 -0
  701. package/distNodeJS/index.js +3 -19
  702. package/distNodeJS/index.js.map +1 -1
  703. package/distNodeJS/nodeset_image_file_store.d.ts +1 -0
  704. package/distNodeJS/nodeset_image_file_store.d.ts.map +1 -0
  705. package/distNodeJS/nodeset_image_file_store.js +20 -28
  706. package/distNodeJS/nodeset_image_file_store.js.map +1 -1
  707. package/impl/_mandatory_child_or_requested_optional_filter.ts +3 -3
  708. package/impl/address_space.ts +75 -6
  709. package/impl/address_space_change_event_tools.ts +7 -0
  710. package/impl/address_space_private.ts +1 -0
  711. package/impl/alarms_and_conditions/condition_snapshot_impl.ts +1 -1
  712. package/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +1 -1
  713. package/impl/alarms_and_conditions/ua_alarm_condition_impl.ts +1 -1
  714. package/impl/alarms_and_conditions/ua_condition_impl.ts +1 -1
  715. package/impl/bulk_load_clock.ts +65 -0
  716. package/impl/data_access/semantics_changed.ts +39 -1
  717. package/impl/data_access/ua_multistate_discrete_impl.ts +1 -1
  718. package/impl/extension_object_array_node.ts +5 -5
  719. package/impl/historical_access/address_space_historical_data_node.ts +2 -2
  720. package/impl/namespace_impl.ts +119 -2
  721. package/impl/namespace_private.ts +3 -0
  722. package/impl/nodeid_manager.ts +13 -0
  723. package/impl/nodeset_tools/construct_namespace_dependency.ts +4 -4
  724. package/impl/nodeset_tools/dump_to_bsd.ts +1 -1
  725. package/impl/nodeset_tools/nodeset_to_xml.ts +1 -1
  726. package/impl/state_machine/finite_state_machine.ts +56 -10
  727. package/impl/state_machine/ua_shelving_state_machine_ex.ts +1 -1
  728. package/impl/state_machine/ua_two_state_variable.ts +1 -1
  729. package/impl/tool_isSubtypeOf.ts +1 -1
  730. package/impl/ua_data_type_impl.ts +26 -5
  731. package/impl/ua_method_impl.ts +10 -6
  732. package/impl/ua_object_impl.ts +6 -2
  733. package/impl/ua_variable_impl.ts +15 -8
  734. package/impl/ua_variable_type_impl.ts +3 -3
  735. package/nodeJS.d.ts +1 -1
  736. package/nodeJS.js +1 -1
  737. package/package.json +42 -41
  738. package/source_nodejs/generate_address_space.ts +31 -14
  739. package/testHelpers.d.ts +1 -1
  740. package/testHelpers.js +1 -1
  741. /package/bin/{nodeset_tool_common.js → nodeset_tool_common.cjs} +0 -0
@@ -7,7 +7,7 @@ export function adjustBrowseDirection(
7
7
  browseDirection: BrowseDirection | null | undefined,
8
8
  defaultValue: BrowseDirection
9
9
  ): BrowseDirection {
10
- // c8 ignore next
10
+ /* c8 ignore next */
11
11
  if (browseDirection === null || browseDirection === undefined) {
12
12
  return defaultValue;
13
13
  }
@@ -61,7 +61,7 @@ export function encode_ArgumentList(definition: ArgumentDef[], args: unknown[],
61
61
  }
62
62
 
63
63
  export function decode_ArgumentList(definition: ArgumentDef[], stream: BinaryStream): unknown[] {
64
- // c8 ignore next
64
+ /* c8 ignore next */
65
65
  if (!Array.isArray(definition)) {
66
66
  throw new Error(
67
67
  "This BaseDataType cannot be decoded because it has no definition.\n" +
@@ -113,7 +113,7 @@ export function getMethodDeclaration_ArgumentList(
113
113
  // find object in address space
114
114
  const obj = addressSpace.findNode(objectId) as UAObject;
115
115
  if (!obj) {
116
- // c8 ignore next
116
+ /* c8 ignore next */
117
117
  doDebug && debugLog("cannot find node ", objectId.toString());
118
118
 
119
119
  return { statusCode: StatusCodes.BadNodeIdUnknown };
@@ -135,7 +135,7 @@ export function getMethodDeclaration_ArgumentList(
135
135
  // return {statusCode: StatusCodes.BadMethodInvalid};
136
136
  return { statusCode: StatusCodes.Good, methodDeclaration: objectMethod };
137
137
  }
138
- // c8 ignore next
138
+ /* c8 ignore next */
139
139
  if (methodDeclaration.nodeClass !== NodeClass.Method) {
140
140
  throw new Error("Expecting a Method here");
141
141
  }
@@ -186,9 +186,9 @@ export function isArgumentValid(addressSpace: IAddressSpace, argDefinition: Argu
186
186
  const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
187
187
  const argDataType = addressSpace.findDataType(resolveNodeId(arg.dataType));
188
188
 
189
- // c8 ignore next
189
+ /* c8 ignore next */
190
190
  if (!argDefDataType) {
191
- // c8 ignore next
191
+ /* c8 ignore next */
192
192
  doDebug && debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
193
193
  return false;
194
194
  }
@@ -202,7 +202,7 @@ export function isArgumentValid(addressSpace: IAddressSpace, argDefinition: Argu
202
202
  return false;
203
203
  }
204
204
 
205
- // c8 ignore next
205
+ /* c8 ignore next */
206
206
  if (!argDataType) {
207
207
  doDebug && debugLog(" cannot find dataType ", arg.dataType, resolveNodeId(arg.dataType));
208
208
  doDebug && debugLog(" arg = ", arg.toString());
@@ -210,7 +210,7 @@ export function isArgumentValid(addressSpace: IAddressSpace, argDefinition: Argu
210
210
  return false;
211
211
  }
212
212
 
213
- // c8 ignore next
213
+ /* c8 ignore next */
214
214
  if (doDebug) {
215
215
  doDebug && debugLog(" checking argDefDataType ", argDefDataType.toString());
216
216
  doDebug && debugLog(" checking argDataType ", argDataType.toString());
@@ -262,7 +262,7 @@ export function verifyArguments_ArgumentList(
262
262
  });
263
263
 
264
264
  if (methodInputArguments.length > inputArguments.length) {
265
- // c8 ignore next
265
+ /* c8 ignore next */
266
266
  doDebug &&
267
267
  debugLog(
268
268
  "verifyArguments_ArgumentList " +
@@ -278,7 +278,7 @@ export function verifyArguments_ArgumentList(
278
278
  }
279
279
 
280
280
  if (methodInputArguments.length < inputArguments.length) {
281
- // c8 ignore next
281
+ /* c8 ignore next */
282
282
  doDebug &&
283
283
  debugLog(
284
284
  " verifyArguments_ArgumentList " +
@@ -14,6 +14,7 @@ export function coerceEnumValues(enumValues: EnumValueTypeOptionsLike[] | { [key
14
14
  assert(Object.hasOwn(en, "value"));
15
15
  assert(Object.hasOwn(en, "displayName"));
16
16
  return new EnumValueType({
17
+ description: en.description !== undefined ? coerceLocalizedText(en.description) : null,
17
18
  displayName: coerceLocalizedText(en.displayName),
18
19
  value: coerceInt64(en.value || 0)
19
20
  });
@@ -11,7 +11,7 @@ import { BrowseDescription, type BrowseDescriptionOptions, type ReferenceDescrip
11
11
  import { resolveReferenceType } from "../../impl/reference_impl.js";
12
12
 
13
13
  export function referenceTypeToString(addressSpace: IAddressSpace, referenceTypeId: NodeIdLike | null): string {
14
- // c8 ignore next
14
+ /* c8 ignore next */
15
15
  if (!referenceTypeId) {
16
16
  return "<null> ";
17
17
  } else {
package/api/index.ts CHANGED
@@ -98,8 +98,9 @@ export {
98
98
  } from "../impl/historical_access/read_processed_details_hook.js";
99
99
  /** @internal */
100
100
  export { isNonEmptyQualifiedName, NamespaceImpl } from "../impl/namespace_impl.js";
101
+ export type { ConstructNodeIdOptions } from "../impl/nodeid_manager.js";
101
102
  /** How node ids are assigned within a namespace. */
102
- export { ConstructNodeIdOptions, NamespaceOptions, NodeIdManager } from "../impl/nodeid_manager.js";
103
+ export { NamespaceOptions, NodeIdManager } from "../impl/nodeid_manager.js";
103
104
  /** Rewrites the server's namespace array to match the namespaces actually loaded. */
104
105
  export { adjustNamespaceArray } from "../impl/nodeset_tools/adjust_namespace_array.js";
105
106
  export * from "../impl/nodeset_tools/construct_namespace_dependency.js";
@@ -17,7 +17,7 @@ import type { DTEnumValue, UADiscreteItem, UADiscreteItem_Base, UAMultiStateDisc
17
17
  import type { StatusCode } from "node-opcua-status-code";
18
18
  import type { ISetStateOptions } from "../i_set_state_options.js";
19
19
 
20
- export { UAMultiStateDiscrete } from "node-opcua-nodeset-ua";
20
+ export type { UAMultiStateDiscrete } from "node-opcua-nodeset-ua";
21
21
 
22
22
  export interface UAMultiStateDiscreteEx<T, DT extends DataType> extends UAVariableT<T, DT>, UAMultiStateDiscrete_Base<T, DT> {
23
23
  //------------ helpers ------------------
@@ -55,4 +55,21 @@ export interface NodeSetLoaderOptions {
55
55
  * @default undefined (no store)
56
56
  */
57
57
  imageStore?: NodesetImageStore | boolean;
58
+ /**
59
+ * accept a sibling `<name>.ndjson.gz` on the strength of the source length it records,
60
+ * without reading and hashing the XML to prove it.
61
+ *
62
+ * Validating a sibling image costs a read and a SHA-256 of the whole document — around
63
+ * 30 ms of the ~110 ms it takes to replay the standard nodeset, spent proving that a file
64
+ * nobody edited has not changed. This skips that: the recorded source length against the
65
+ * file size becomes the whole check, and the XML is never read. The image's schema, trailer
66
+ * and node count are still verified.
67
+ *
68
+ * What it gives up is precise: an XML edited in place to exactly the same byte length,
69
+ * beside an image built from the earlier content, is replayed from the stale image. For the
70
+ * nodesets a package ships — immutable, installed once — that cannot happen. For files a
71
+ * user edits it can, so leave this off there.
72
+ * @default false
73
+ */
74
+ trustSiblingImages?: boolean;
58
75
  }
@@ -14,7 +14,7 @@ const _errorLog = make_errorLog("decode_xml_extension_object");
14
14
  function encodingNodeIdToDataTypeNode(addressSpace: IAddressSpace, encodingNodeId: NodeId): UADataType {
15
15
  const encodingNode = addressSpace.findNode(encodingNodeId);
16
16
 
17
- // c8 ignore next
17
+ /* c8 ignore next */
18
18
  if (!encodingNode) {
19
19
  throw new Error(`findDataTypeNode: Cannot find encoding NodeId${encodingNodeId.toString()}`);
20
20
  }
@@ -55,64 +55,100 @@ export async function ensureDatatypeExtracted(addressSpace: IAddressSpace): Prom
55
55
  const addressSpacePriv = addressSpace as AddressSpacePrivateWithDataTypeManager;
56
56
 
57
57
  if (!addressSpacePriv.$$extraDataTypeManager) {
58
- const dataTypeManager = new ExtraDataTypeManager();
58
+ addressSpacePriv.$$extraDataTypeManager = new ExtraDataTypeManager();
59
+ }
60
+ const dataTypeManager = addressSpacePriv.$$extraDataTypeManager;
59
61
 
60
- const namespaceArray = addressSpace.getNamespaceArray().map((n: INamespace) => n.namespaceUri);
62
+ const namespaceArray = addressSpace.getNamespaceArray().map((n: INamespace) => n.namespaceUri);
61
63
 
62
- doDebug && debugLog("INamespace Array = ", namespaceArray.join("\n "));
64
+ doDebug && debugLog("INamespace Array = ", namespaceArray.join("\n "));
63
65
 
64
- dataTypeManager.setNamespaceArray(namespaceArray);
66
+ dataTypeManager.setNamespaceArray(namespaceArray);
65
67
 
66
- addressSpacePriv.$$extraDataTypeManager = dataTypeManager;
68
+ const factories: DataTypeFactory[] = [getStandardDataTypeFactory()];
67
69
 
68
- const factories: DataTypeFactory[] = [getStandardDataTypeFactory()];
70
+ // A namespace with no factory is one this call has not seen yet: the first call sees them
71
+ // all, and a later one sees a namespace registered since, or one emptied by
72
+ // `deleteNamespace` and populated again - `deleteNamespace` drops that namespace's factory
73
+ // precisely so that its structures are extracted afresh rather than colliding with the
74
+ // schemas of the previous load. When every namespace already has one there is nothing to
75
+ // extract and this returns as fast as it always did.
76
+ let hasNewFactory = false;
69
77
 
70
- const priorityTable = constructNamespacePriorityTable(addressSpace).priorityTable;
78
+ for (let namespaceIndex = 1; namespaceIndex < namespaceArray.length; namespaceIndex++) {
79
+ const namespace = addressSpace.getNamespace(namespaceIndex);
71
80
 
72
- for (let namespaceIndex = 1; namespaceIndex < namespaceArray.length; namespaceIndex++) {
73
- const namespace = addressSpace.getNamespace(namespaceIndex);
81
+ if (dataTypeManager.hasDataTypeFactory(namespaceIndex)) {
82
+ factories.push(dataTypeManager.getDataTypeFactory(namespaceIndex));
83
+ continue;
84
+ }
74
85
 
75
- if (doDebug) {
76
- debugLog("namespaceIndex = ", namespaceIndex);
77
- debugLog("namespace = ", namespace.namespaceUri);
78
- debugLog("factories = ", factories.map((f) => f.targetNamespace).join(" "));
79
- // find dependent namespaces
80
- let dependency = constructNamespaceDependency(namespace);
81
- // remove last element that is my namespace
82
- dependency = dependency.filter((ns) => ns.index !== namespaceIndex);
83
- const dependFactories = dependency.map((ns) => {
84
- const df = factories[ns.index];
85
- if (!df) {
86
- debugLog("namespaceIndex = ", namespaceIndex);
87
- debugLog("namespace = ", namespace.namespaceUri);
88
- debugLog("priorityTable", priorityTable);
89
- debugLog(dependency.map((ns) => `${ns.index} ${ns.namespaceUri}`).join("\n"));
90
- throw new Error(`Cannot find factory for namespace ${ns.namespaceUri}`);
91
- }
92
- return df;
93
- });
94
- // getStandardDataTypeFactory()
86
+ // NOTE: a DataTypeFactory chains POSITIONALLY — to every factory built
87
+ // before it, not to the namespaces it actually depends on. That over-couples
88
+ // namespaces, and it matters now that `deleteNamespace` exists: dropping a
89
+ // namespace leaves everything loaded after it holding a discarded factory,
90
+ // so the factory, its schemas and its ExtensionObject constructors stay
91
+ // alive. A consumer that registers its own namespace BEFORE its dependencies
92
+ // is chained through by every one of them, and leaks a factory per reload.
93
+ //
94
+ // The dependency-correct computation exists below, under `if (doDebug)`,
95
+ // with its result assigned to a variable nobody reads. Using it is NOT a
96
+ // drop-in: `constructNamespaceDependency` walks values and throws on an
97
+ // ExtensionObject with a null schema (`construct_namespace_dependency.ts`,
98
+ // `exploreExtensionObject`). Being debug-only, it has never had to survive
99
+ // the hot path — calling it on every load breaks server writes with
100
+ // `TypeError: Cannot read properties of null (reading 'schema')`.
101
+ //
102
+ // So the fix is two changes, not one: harden that walk, then switch the
103
+ // chain. Deliberately left for its own change, with its own tests, rather
104
+ // than smuggled into this one.
105
+ if (doDebug) {
106
+ const priorityTable = constructNamespacePriorityTable(addressSpace).priorityTable;
107
+ debugLog("namespaceIndex = ", namespaceIndex);
108
+ debugLog("namespace = ", namespace.namespaceUri);
109
+ debugLog("factories = ", factories.map((f) => f.targetNamespace).join(" "));
110
+ // find dependent namespaces
111
+ let dependency = constructNamespaceDependency(namespace);
112
+ // remove last element that is my namespace
113
+ dependency = dependency.filter((ns) => ns.index !== namespaceIndex);
114
+ const dependFactories = dependency.map((ns) => {
115
+ const df = factories[ns.index];
116
+ if (!df) {
117
+ debugLog("namespaceIndex = ", namespaceIndex);
118
+ debugLog("namespace = ", namespace.namespaceUri);
119
+ debugLog("priorityTable", priorityTable);
120
+ debugLog(dependency.map((ns) => `${ns.index} ${ns.namespaceUri}`).join("\n"));
121
+ throw new Error(`Cannot find factory for namespace ${ns.namespaceUri}`);
122
+ }
123
+ return df;
124
+ });
125
+ // getStandardDataTypeFactory()
126
+
127
+ const _dataTypeFactory1 = new DataTypeFactory(dependFactories);
128
+ }
129
+ const dataTypeFactory1 = new DataTypeFactory([...factories]);
130
+ dataTypeFactory1.targetNamespace = namespace.namespaceUri;
95
131
 
96
- const _dataTypeFactory1 = new DataTypeFactory(dependFactories);
97
- }
98
- const dataTypeFactory1 = new DataTypeFactory([...factories]);
99
- dataTypeFactory1.targetNamespace = namespace.namespaceUri;
132
+ factories.push(dataTypeFactory1);
100
133
 
101
- factories.push(dataTypeFactory1);
134
+ dataTypeManager.registerDataTypeFactory(namespaceIndex, dataTypeFactory1);
135
+ hasNewFactory = true;
136
+ }
102
137
 
103
- dataTypeManager.registerDataTypeFactory(namespaceIndex, dataTypeFactory1);
104
- }
138
+ if (hasNewFactory) {
105
139
  // inject simple types
106
140
 
107
141
  // now extract structure and enumeration from old form
108
142
  const session = new PseudoSession(addressSpace);
109
143
 
144
+ // the extraction skips a dataType whose factory already knows it, so the namespaces that
145
+ // were extracted by an earlier call are walked but not rebuilt
110
146
  await populateDataTypeManager(session, dataTypeManager, DataTypeExtractStrategy.Auto);
111
147
 
112
148
  // turn old <=103 structure to have valid DataTypeDefinition
113
149
  fixDefinition103(addressSpace, namespaceArray, dataTypeManager);
114
150
  }
115
- return addressSpacePriv.$$extraDataTypeManager as ExtraDataTypeManager;
151
+ return dataTypeManager;
116
152
  }
117
153
 
118
154
  export function ensureDatatypeExtractedWithCallback(addressSpace: IAddressSpace, callback: CallbackT<ExtraDataTypeManager>): void {
@@ -2,6 +2,7 @@ import type { IAddressSpace, RequiredModel } from "node-opcua-address-space-base
2
2
  import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
3
3
  import type { CallbackT } from "node-opcua-status-code";
4
4
  import semver from "semver";
5
+ import { beginBulkLoadClock, endBulkLoadClock } from "../../impl/bulk_load_clock.js";
5
6
  import type { NamespacePrivate } from "../../impl/namespace_private.js";
6
7
  import { adjustNamespaceArray } from "../../impl/nodeset_tools/adjust_namespace_array.js";
7
8
  import type { NodeSetLoaderOptions } from "../interfaces/nodeset_loader_options.js";
@@ -341,32 +342,41 @@ export async function generateAddressSpaceRaw(
341
342
  }
342
343
  }
343
344
 
344
- for (let index = 0; index < order.length; index++) {
345
- const nodesetIndex = order[index];
346
- const nodeset = nodesetDesc[nodesetIndex];
347
- // c8 ignore next
348
- doDebug && debugLog(" loading ", nodesetIndex, nodeset.reader.name);
349
- try {
350
- if (nodeset.format.name === NDJSON_IMAGE_FORMAT) {
351
- // an image is already the cache: replaying it through the cache would be storing
352
- // a copy of what was just read
353
- try {
354
- await nodesetLoader.addRecords(nodeset.format.records(nodeset.document));
355
- } finally {
356
- releaseInflatedImageLines(await nodeset.document.rawBytes());
345
+ // Everything this load creates is stamped with ONE clock reading rather than one apiece:
346
+ // see impl/bulk_load_clock.ts. Scoped to this address space and reference counted, so a
347
+ // load of another address space, or a write to one that is not loading, is unaffected.
348
+ // `finally` matters: a load that throws must not leave the clock frozen.
349
+ beginBulkLoadClock(addressSpace);
350
+ try {
351
+ for (let index = 0; index < order.length; index++) {
352
+ const nodesetIndex = order[index];
353
+ const nodeset = nodesetDesc[nodesetIndex];
354
+ // c8 ignore next
355
+ doDebug && debugLog(" loading ", nodesetIndex, nodeset.reader.name);
356
+ try {
357
+ if (nodeset.format.name === NDJSON_IMAGE_FORMAT) {
358
+ // an image is already the cache: replaying it through the cache would be storing
359
+ // a copy of what was just read
360
+ try {
361
+ await nodesetLoader.addRecords(nodeset.format.records(nodeset.document));
362
+ } finally {
363
+ releaseInflatedImageLines(await nodeset.document.rawBytes());
364
+ }
365
+ } else {
366
+ await loadThroughCache(nodesetLoader, nodeset.format, nodeset.document, nodeset.reader, store);
357
367
  }
358
- } else {
359
- await loadThroughCache(nodesetLoader, nodeset.format, nodeset.document, nodeset.reader, store);
368
+ } catch (err) {
369
+ const cause = err instanceof Error ? err.message : String(err);
370
+ const message = `generateAddressSpace: loading nodeset ${nodeset.reader.name} failed: ${cause}`;
371
+ errorLog(message);
372
+ throw new Error(message, { cause: err });
360
373
  }
361
- } catch (err) {
362
- const cause = err instanceof Error ? err.message : String(err);
363
- const message = `generateAddressSpace: loading nodeset ${nodeset.reader.name} failed: ${cause}`;
364
- errorLog(message);
365
- throw new Error(message, { cause: err });
366
374
  }
367
- }
368
375
 
369
- await nodesetLoader.terminate();
376
+ await nodesetLoader.terminate();
377
+ } finally {
378
+ endBulkLoadClock(addressSpace);
379
+ }
370
380
  adjustNamespaceArray(addressSpace);
371
381
  // however process them in series
372
382
  }
@@ -177,7 +177,7 @@ export class NodeSetLoader {
177
177
  dataType: DataType.String,
178
178
  value: addressSpace1.getNamespaceArray().map((ns) => ns.namespaceUri)
179
179
  });
180
- // c8 ignore next
180
+ /* c8 ignore next */
181
181
  if (doDebug) {
182
182
  debugLog(
183
183
  "addressSpace NS = ",
@@ -208,7 +208,7 @@ export class NodeSetLoader {
208
208
  try {
209
209
  await task(addressSpace1);
210
210
  } catch (err) {
211
- // c8 ignore next
211
+ /* c8 ignore next */
212
212
  if (types.isNativeError(err)) {
213
213
  errorLog(
214
214
  `[NODE-OPCUA-W36] generateAddressSpace: post-loading task failed during "${stage}" and was skipped: ${err.message}`
@@ -40,7 +40,7 @@ export async function promoteObjectAndVariablesInNamespace(namespace: INamespace
40
40
 
41
41
  promoter.promoter(a as UAVariable & UAObject);
42
42
  const after = a.constructor.name;
43
- // c8 ignore next
43
+ /* c8 ignore next */
44
44
  if (doDebug) {
45
45
  debugLog(`promoting ${a.browseName.toString()} from ${before} to ${after}`);
46
46
  }
@@ -50,7 +50,13 @@ function typeDefinitionOf(addressSpace: IAddressSpace, node: UAInstance): UAType
50
50
  * walks the chain once per member
51
51
  */
52
52
  class DeclarationIndex {
53
- private readonly cache = new Map<string, BaseNode | null>();
53
+ /**
54
+ * per type, the answer for each browse name asked of it. Keyed on the type node itself
55
+ * rather than on a `${nodeId}|${browseName}` string: a sweep asks this thousands of times,
56
+ * and building that key rendered a NodeId to text, rendered a QualifiedName to text and
57
+ * joined them — on every hit as much as on every miss.
58
+ */
59
+ private readonly cache = new Map<BaseNode, Map<string, BaseNode | null>>();
54
60
  /** absent from a standard nodeset older than 1.04: then no type has interfaces to look into */
55
61
  private readonly hasInterface: UAReferenceType | null;
56
62
  private readonly hasModellingRule: UAReferenceType;
@@ -76,22 +82,29 @@ class DeclarationIndex {
76
82
  }
77
83
 
78
84
  public find(type: UAType, browseName: QualifiedName): BaseNode | null {
79
- const key = `${type.nodeId.toString()}|${browseName.toString()}`;
80
- const cached = this.cache.get(key);
85
+ let perType = this.cache.get(type);
86
+ if (!perType) {
87
+ perType = new Map<string, BaseNode | null>();
88
+ this.cache.set(type, perType);
89
+ }
90
+ // the browse name still needs a key, but only the one string, and only on a miss for
91
+ // this type; `toString` renders the namespace index with it, so two names that differ
92
+ // only by namespace do not collide
93
+ const key = browseName.toString();
94
+ const cached = perType.get(key);
81
95
  if (cached !== undefined) {
82
96
  return cached;
83
97
  }
84
- const found = this.walk(type, browseName, new Set<string>());
85
- this.cache.set(key, found);
98
+ const found = this.walk(type, browseName, new Set<BaseNode>());
99
+ perType.set(key, found);
86
100
  return found;
87
101
  }
88
102
 
89
- private walk(type: UAType, browseName: QualifiedName, visited: Set<string>): BaseNode | null {
90
- const typeKey = type.nodeId.toString();
91
- if (visited.has(typeKey)) {
103
+ private walk(type: UAType, browseName: QualifiedName, visited: Set<BaseNode>): BaseNode | null {
104
+ if (visited.has(type)) {
92
105
  return null;
93
106
  }
94
- visited.add(typeKey);
107
+ visited.add(type);
95
108
  const child = type.getChildByName(browseName);
96
109
  if (child) {
97
110
  return child;
@@ -588,6 +588,8 @@ const OPTIONAL_PLAIN: Array<keyof NodesetNodeRecord & keyof NodesetImageNode> =
588
588
  "accessLevel",
589
589
  "userAccessLevel"
590
590
  ];
591
+ /** the same keys, for the reader, which asks of a key the image carries whether it is one of these */
592
+ const OPTIONAL_PLAIN_SET = new Set<string>(OPTIONAL_PLAIN);
591
593
 
592
594
  export function encodeNode(record: NodesetNodeRecord): NodesetImageNode {
593
595
  const out: NodesetImageNode = {
@@ -650,24 +652,36 @@ export function decodeNode(json: NodesetImageNode): NodesetNodeRecord {
650
652
  if (typeof json.nodeClass !== "number" || !(json.nodeClass in NodeClass)) {
651
653
  throw new NodesetImageError(`not a node record: ${JSON.stringify(json).slice(0, 80)}`);
652
654
  }
655
+ // a sized array filled in place: a nodeset carries twenty thousand references, and `map` over
656
+ // the encoded ones allocated a closure per node and grew the array as it went
657
+ const encoded = json.references || [];
658
+ const references: NodesetReferenceRecord[] = new Array(encoded.length);
659
+ for (let i = 0; i < encoded.length; i++) {
660
+ const r = encoded[i];
661
+ references[i] = {
662
+ isForward: r[0] === 1,
663
+ referenceType: decodeNodeId(r[1]),
664
+ nodeId: decodeNodeId(r[2]),
665
+ inverseDeclared: r.length === 3
666
+ };
667
+ }
653
668
  const record: NodesetNodeRecord = {
654
669
  kind: "node",
655
670
  nodeClass: json.nodeClass,
656
671
  nodeId: decodeNodeId(json.nodeId),
657
672
  browseName: decodeQualifiedName(json.browseName),
658
- references: (json.references || []).map(
659
- (r): NodesetReferenceRecord => ({
660
- isForward: r[0] === 1,
661
- referenceType: decodeNodeId(r[1]),
662
- nodeId: decodeNodeId(r[2]),
663
- inverseDeclared: r.length === 3
664
- })
665
- )
673
+ references
666
674
  };
667
- for (const key of OPTIONAL_PLAIN) {
668
- const v = (json as unknown as Record<string, unknown>)[key];
669
- if (v !== undefined) {
670
- (record as unknown as Record<string, unknown>)[key] = v;
675
+ // the keys the writer actually emitted, not the nineteen it might have: a node carries a
676
+ // handful of them, and probing for each of the nineteen was most of this loop's work
677
+ const plain = json as unknown as Record<string, unknown>;
678
+ const out = record as unknown as Record<string, unknown>;
679
+ for (const key in plain) {
680
+ if (OPTIONAL_PLAIN_SET.has(key)) {
681
+ const v = plain[key];
682
+ if (v !== undefined) {
683
+ out[key] = v;
684
+ }
671
685
  }
672
686
  }
673
687
  // an absent displayName is the browse name: what the writer left out because it was the same
@@ -289,7 +289,7 @@ export class NodesetRecordApplier implements NodesetRecordConsumer {
289
289
  }
290
290
  found.add(namespaceUri);
291
291
  const namespace = this.addressSpace.getNamespace(namespaceUri);
292
- // c8 ignore next
292
+ /* c8 ignore next */
293
293
  if (!namespace) {
294
294
  throw new Error(
295
295
  `cannot find namespace for ${namespaceUri}\nplease make sure to initialize your address space with the corresponding nodeset files`
@@ -58,14 +58,12 @@ export function makeXmlNodesetRecordReader(): XmlNodesetRecordReader {
58
58
  const models: NodesetModelRecord[] = [];
59
59
  const aliases: Record<string, NodeId> = Object.create(null);
60
60
  let headerEmitted = false;
61
- // every id string of the file resolved once: "i=47" alone appears tens of thousands of times
61
+ // every id string of the file resolved once: "i=47" alone appears tens of thousands of times.
62
+ // The aliases are seeded into the same table as they are declared — an alias is just another
63
+ // spelling of an id — so the fifty thousand lookups a document costs are one probe, not two.
62
64
  const ids = new Map<string, NodeId>();
63
65
 
64
66
  function nodeIdOf(text: string): NodeId {
65
- const alias = aliases[text];
66
- if (alias) {
67
- return alias;
68
- }
69
67
  let nodeId = ids.get(text);
70
68
  if (!nodeId) {
71
69
  nodeId = resolveNodeId(text);
@@ -108,7 +106,11 @@ export function makeXmlNodesetRecordReader(): XmlNodesetRecordReader {
108
106
 
109
107
  const state_Alias = {
110
108
  finish(this: State) {
111
- aliases[this.attrs.Alias] = resolveNodeId(this.text);
109
+ const name = this.attrs.Alias;
110
+ const nodeId = resolveNodeId(this.text);
111
+ aliases[name] = nodeId;
112
+ // the alias table still travels in the header record; the id table is what nodeIdOf reads
113
+ ids.set(name, nodeId);
112
114
  }
113
115
  };
114
116
 
@@ -313,12 +313,12 @@ export function makeExtensionObjectParser<T>(
313
313
  }
314
314
  break;
315
315
  default: {
316
- // c8 ignore next
316
+ /* c8 ignore next */
317
317
  if (!this._cloneFragment) {
318
318
  // the XML file is probably not exposing standard UA extension object correctly.
319
319
  // this has been seen in some generated xml files using the dataType nodeId instead of the default encoding
320
320
  // nodeid
321
- // c8 ignore next
321
+ /* c8 ignore next */
322
322
  doDebug &&
323
323
  errorLog(
324
324
  "[NODE-OPCUA-E12] standard OPCUA Extension object from (namespace=0) has a invalid TypeId",
@@ -332,7 +332,7 @@ export function makeExtensionObjectParser<T>(
332
332
  // the "Default Xml" encoding nodeId
333
333
  const xmlEncodingNodeId = typeDefinitionId;
334
334
  if (typeDefinitionId.isEmpty()) {
335
- // c8 ignore next
335
+ /* c8 ignore next */
336
336
  doDebug && debugLog(`xmlEncodingNodeId is empty for ${typeDefinitionId.toString()}`);
337
337
  break;
338
338
  }
@@ -62,7 +62,7 @@ export function innerBrowse(
62
62
  // handle continuation points
63
63
  results = results.map((result: BrowseResult, _index) => {
64
64
  assert(!result.continuationPoint);
65
- // c8 ignore next
65
+ /* c8 ignore next */
66
66
  if (!engine.continuationPointManager) {
67
67
  return new BrowseResult({ statusCode: StatusCodes.BadNoContinuationPoints });
68
68
  }
@@ -73,7 +73,7 @@ const {
73
73
  xmlNodesetRecords
74
74
  } = require("../dist/api/index.js");
75
75
  const { digestAddressSpace } = require("../distNodeJS/index.js");
76
- const { asFile, dependencyChain } = require("./nodeset_tool_common.js");
76
+ const { asFile, dependencyChain } = require("./nodeset_tool_common.cjs");
77
77
 
78
78
  const usage = () => {
79
79
  console.error("usage: opcua-nodeset-live equivalence <file.xml>... [--require <file.xml>]... [--dump <dir>] [--quiet]");
@@ -27,7 +27,7 @@ const path = require("node:path");
27
27
  const { performance } = require("node:perf_hooks");
28
28
  const { readNodesetImageInfo, recordsToNodeset2XML } = require("../dist/api/index.js");
29
29
  const { nodesetFileToImage } = require("../distNodeJS/index.js");
30
- const { imageFileOf, kb, recordsOfFile } = require("./nodeset_tool_common.js");
30
+ const { imageFileOf, kb, recordsOfFile } = require("./nodeset_tool_common.cjs");
31
31
 
32
32
  const usage = () => {
33
33
  console.error("usage: opcua-nodeset-image build <file.xml>... [--out <dir>]");
@@ -31,8 +31,8 @@ const {
31
31
  nodesetFileToImage,
32
32
  readNodeSet2XmlFile
33
33
  } = require("../distNodeJS/index.js");
34
- const { asFile, dependencyChain, imageFileOf, kb } = require("./nodeset_tool_common.js");
35
- const { equivalence } = require("./nodeset_equivalence.js");
34
+ const { asFile, dependencyChain, imageFileOf, kb } = require("./nodeset_tool_common.cjs");
35
+ const { equivalence } = require("./nodeset_equivalence.cjs");
36
36
 
37
37
  const usage = () => {
38
38
  console.error("usage: opcua-nodeset-live verify <file.xml>... [--require <file.xml>]...");
@@ -55,3 +55,4 @@ export interface AddressSpaceConstructor {
55
55
  * checked rather than asserted.
56
56
  */
57
57
  export declare const AddressSpace: AddressSpaceConstructor;
58
+ //# sourceMappingURL=address_space_public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address_space_public.d.ts","sourceRoot":"","sources":["../../api/address_space_public.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IAC/C,eAAe,IAAI,SAAS,CAAC;IAC7B,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,UAAU,EAAE,YAAY,CAAC;IAEzB;;;;;;;OAOG;IACH,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACpC,mCAAmC;IACnC,MAAM,IAAI,YAAY,CAAC;IAEvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,EAAE,uBAA0C,CAAC"}