node-opcua-address-space 2.180.0 → 2.181.1

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 (1084) hide show
  1. package/api/address_space_public.ts +63 -0
  2. package/api/address_space_ts.ts +129 -0
  3. package/api/continuation_points/continuation_point_manager.ts +271 -0
  4. package/api/helpers/argument_list.ts +310 -0
  5. package/api/helpers/call_helpers.ts +100 -0
  6. package/api/helpers/coerce_enum_value.ts +33 -0
  7. package/api/helpers/dump_tools.ts +90 -0
  8. package/api/helpers/ensure_secure_access.ts +78 -0
  9. package/api/helpers/multiform_func.ts +78 -0
  10. package/api/helpers/resolve_opaque_on_address_space.ts +26 -0
  11. package/api/index.ts +210 -0
  12. package/api/interfaces/alarms_and_conditions/condition_info_i.ts +60 -0
  13. package/api/interfaces/alarms_and_conditions/condition_snapshot.ts +236 -0
  14. package/api/interfaces/alarms_and_conditions/deviation_stuff.ts +16 -0
  15. package/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.ts +8 -0
  16. package/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +6 -0
  17. package/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +6 -0
  18. package/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +13 -0
  19. package/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +6 -0
  20. package/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +6 -0
  21. package/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +21 -0
  22. package/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.ts +28 -0
  23. package/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +72 -0
  24. package/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +36 -0
  25. package/api/interfaces/alarms_and_conditions/ua_condition_ex.ts +55 -0
  26. package/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +17 -0
  27. package/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +21 -0
  28. package/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +21 -0
  29. package/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.ts +26 -0
  30. package/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +29 -0
  31. package/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.ts +25 -0
  32. package/api/interfaces/data_access/ua_multistate_discrete_ex.ts +57 -0
  33. package/api/interfaces/data_access/ua_multistate_value_discrete_ex.ts +31 -0
  34. package/api/interfaces/data_access/ua_two_state_discrete_ex.ts +15 -0
  35. package/api/interfaces/nodeset_loader_options.ts +58 -0
  36. package/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +20 -0
  37. package/api/interfaces/state_machine/ua_finite_state_machine_type.ts +50 -0
  38. package/api/interfaces/state_machine/ua_program_state_machine_type.ts +14 -0
  39. package/api/interfaces/state_machine/ua_shelved_state_machine_ex.ts +35 -0
  40. package/api/interfaces/state_machine/ua_state_machine_type.ts +288 -0
  41. package/api/loader/decode_xml_extension_object.ts +80 -0
  42. package/api/loader/ensure_datatype_extracted.ts +122 -0
  43. package/api/loader/generateAddressSpaceRaw.ts +470 -0
  44. package/api/loader/load_nodeset2.ts +278 -0
  45. package/api/loader/make_xml_extension_object_parser.ts +518 -0
  46. package/api/loader/namespace_post_step.ts +68 -0
  47. package/api/loader/nodeset_image.ts +451 -0
  48. package/api/loader/nodeset_image_codec.ts +576 -0
  49. package/api/loader/nodeset_image_store.ts +78 -0
  50. package/api/loader/nodeset_record.ts +141 -0
  51. package/api/loader/nodeset_record_applier.ts +889 -0
  52. package/api/loader/nodeset_source.ts +367 -0
  53. package/api/loader/nodeset_source_helpers.ts +50 -0
  54. package/api/loader/nodeset_to_image.ts +29 -0
  55. package/api/loader/nodeset_xml_producer.ts +383 -0
  56. package/api/loader/parsers/extension_object_parser.ts +374 -0
  57. package/api/loader/parsers/variant_parser.ts +363 -0
  58. package/api/loader/register_node_promoter.ts +6 -0
  59. package/api/namespace.ts +25 -0
  60. package/api/namespace_alarm_and_condition.ts +78 -0
  61. package/api/namespace_data_access.ts +92 -0
  62. package/api/namespace_machine_state.ts +20 -0
  63. package/api/pseudo_session.ts +415 -0
  64. package/api/session_context.ts +729 -0
  65. package/api/ua_interface.ts +38 -0
  66. package/api/ua_two_state_variable_ex.ts +36 -0
  67. package/bin/opcua-nodeset-image.js +192 -0
  68. package/dist/api/address_space_public.d.ts +57 -0
  69. package/dist/api/address_space_public.js +19 -0
  70. package/dist/api/address_space_public.js.map +1 -0
  71. package/dist/api/address_space_ts.d.ts +79 -0
  72. package/dist/api/address_space_ts.js +13 -0
  73. package/dist/api/address_space_ts.js.map +1 -0
  74. package/dist/api/continuation_points/continuation_point_manager.js +230 -0
  75. package/dist/api/continuation_points/continuation_point_manager.js.map +1 -0
  76. package/dist/api/helpers/adjust_browse_direction.js.map +1 -0
  77. package/dist/api/helpers/argument_list.js +263 -0
  78. package/dist/api/helpers/argument_list.js.map +1 -0
  79. package/dist/api/helpers/call_helpers.js +80 -0
  80. package/dist/api/helpers/call_helpers.js.map +1 -0
  81. package/dist/api/helpers/coerce_enum_value.d.ts +6 -0
  82. package/dist/api/helpers/coerce_enum_value.js.map +1 -0
  83. package/dist/api/helpers/dump_tools.js +81 -0
  84. package/dist/api/helpers/dump_tools.js.map +1 -0
  85. package/dist/api/helpers/ensure_secure_access.d.ts +19 -0
  86. package/dist/api/helpers/ensure_secure_access.js +67 -0
  87. package/dist/api/helpers/ensure_secure_access.js.map +1 -0
  88. package/dist/api/helpers/make_optionals_map.js.map +1 -0
  89. package/dist/api/helpers/multiform_func.js +75 -0
  90. package/dist/api/helpers/multiform_func.js.map +1 -0
  91. package/dist/api/helpers/resolve_opaque_on_address_space.js +25 -0
  92. package/dist/api/helpers/resolve_opaque_on_address_space.js.map +1 -0
  93. package/dist/api/index.d.ts +113 -0
  94. package/dist/api/index.js +234 -0
  95. package/dist/api/index.js.map +1 -0
  96. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.d.ts +54 -0
  97. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js +28 -0
  98. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -0
  99. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.d.ts +151 -0
  100. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.js.map +1 -0
  101. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -0
  102. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.js.map +1 -0
  103. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.js.map +1 -0
  104. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -0
  105. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js.map +1 -0
  106. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.js.map +1 -0
  107. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -0
  108. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +1 -0
  109. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -0
  110. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js.map +1 -0
  111. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +10 -0
  112. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js.map +1 -0
  113. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -0
  114. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +1 -0
  115. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -0
  116. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +1 -0
  117. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -0
  118. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js.map +1 -0
  119. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +21 -0
  120. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js.map +1 -0
  121. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +56 -0
  122. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js.map +1 -0
  123. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.js.map +1 -0
  124. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -0
  125. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js.map +1 -0
  126. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +44 -0
  127. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.js.map +1 -0
  128. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +4 -0
  129. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -0
  130. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -0
  131. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js.map +1 -0
  132. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +19 -0
  133. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js.map +1 -0
  134. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +25 -0
  135. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js.map +1 -0
  136. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -0
  137. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js.map +1 -0
  138. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -0
  139. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js.map +1 -0
  140. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.d.ts +44 -0
  141. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.js.map +1 -0
  142. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +22 -0
  143. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +1 -0
  144. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.d.ts +13 -0
  145. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.js.map +1 -0
  146. package/dist/api/interfaces/data_access/ua_y_array_item_ex.js.map +1 -0
  147. package/dist/api/interfaces/extension_object_constructor.js.map +1 -0
  148. package/dist/api/interfaces/i_condition_variable_type_setter_options.js.map +1 -0
  149. package/dist/api/interfaces/i_set_state_options.js.map +1 -0
  150. package/dist/api/interfaces/nodeset_loader_options.d.ts +56 -0
  151. package/dist/api/interfaces/nodeset_loader_options.js.map +1 -0
  152. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -0
  153. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +1 -0
  154. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -0
  155. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.js.map +1 -0
  156. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -0
  157. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.js.map +1 -0
  158. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +29 -0
  159. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.js.map +1 -0
  160. package/dist/api/interfaces/state_machine/ua_state_machine_type.d.ts +236 -0
  161. package/dist/api/interfaces/state_machine/ua_state_machine_type.js.map +1 -0
  162. package/dist/api/interfaces/state_machine/ua_transition_ex.js.map +1 -0
  163. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -0
  164. package/dist/api/loader/decode_xml_extension_object.d.ts +6 -0
  165. package/dist/api/loader/decode_xml_extension_object.js +69 -0
  166. package/dist/api/loader/decode_xml_extension_object.js.map +1 -0
  167. package/dist/api/loader/ensure_datatype_extracted.js +88 -0
  168. package/dist/api/loader/ensure_datatype_extracted.js.map +1 -0
  169. package/dist/api/loader/generateAddressSpaceRaw.d.ts +64 -0
  170. package/dist/api/loader/generateAddressSpaceRaw.js +379 -0
  171. package/dist/api/loader/generateAddressSpaceRaw.js.map +1 -0
  172. package/dist/api/loader/load_nodeset2.d.ts +38 -0
  173. package/dist/api/loader/load_nodeset2.js +245 -0
  174. package/dist/api/loader/load_nodeset2.js.map +1 -0
  175. package/dist/api/loader/make_semver_compatible.js.map +1 -0
  176. package/dist/api/loader/make_xml_extension_object_parser.js +417 -0
  177. package/dist/api/loader/make_xml_extension_object_parser.js.map +1 -0
  178. package/dist/api/loader/namespace_post_step.js +57 -0
  179. package/dist/api/loader/namespace_post_step.js.map +1 -0
  180. package/dist/api/loader/nodeset_image.d.ts +94 -0
  181. package/dist/api/loader/nodeset_image.js +406 -0
  182. package/dist/api/loader/nodeset_image.js.map +1 -0
  183. package/dist/api/loader/nodeset_image_codec.d.ts +104 -0
  184. package/dist/api/loader/nodeset_image_codec.js +489 -0
  185. package/dist/api/loader/nodeset_image_codec.js.map +1 -0
  186. package/dist/api/loader/nodeset_image_store.d.ts +27 -0
  187. package/dist/api/loader/nodeset_image_store.js +72 -0
  188. package/dist/api/loader/nodeset_image_store.js.map +1 -0
  189. package/dist/api/loader/nodeset_record.d.ts +125 -0
  190. package/dist/api/loader/nodeset_record.js +26 -0
  191. package/dist/api/loader/nodeset_record.js.map +1 -0
  192. package/dist/api/loader/nodeset_record_applier.d.ts +106 -0
  193. package/dist/api/loader/nodeset_record_applier.js +731 -0
  194. package/dist/api/loader/nodeset_record_applier.js.map +1 -0
  195. package/dist/api/loader/nodeset_source.d.ts +124 -0
  196. package/dist/api/loader/nodeset_source.js +307 -0
  197. package/dist/api/loader/nodeset_source.js.map +1 -0
  198. package/dist/api/loader/nodeset_source_helpers.d.ts +27 -0
  199. package/dist/api/loader/nodeset_source_helpers.js +30 -0
  200. package/dist/api/loader/nodeset_source_helpers.js.map +1 -0
  201. package/dist/api/loader/nodeset_to_image.d.ts +13 -0
  202. package/dist/api/loader/nodeset_to_image.js +30 -0
  203. package/dist/api/loader/nodeset_to_image.js.map +1 -0
  204. package/dist/api/loader/nodeset_xml_producer.d.ts +16 -0
  205. package/dist/api/loader/nodeset_xml_producer.js +349 -0
  206. package/dist/api/loader/nodeset_xml_producer.js.map +1 -0
  207. package/dist/api/loader/parsers/extension_object_parser.js +274 -0
  208. package/dist/api/loader/parsers/extension_object_parser.js.map +1 -0
  209. package/dist/api/loader/parsers/localized_text_parser.js.map +1 -0
  210. package/dist/api/loader/parsers/nodeid_parser.js.map +1 -0
  211. package/dist/api/loader/parsers/qualified_name_parser.js.map +1 -0
  212. package/dist/api/loader/parsers/variant_parser.d.ts +42 -0
  213. package/dist/api/loader/parsers/variant_parser.js +294 -0
  214. package/dist/api/loader/parsers/variant_parser.js.map +1 -0
  215. package/dist/api/loader/register_node_promoter.d.ts +2 -0
  216. package/dist/api/loader/register_node_promoter.js +9 -0
  217. package/dist/api/loader/register_node_promoter.js.map +1 -0
  218. package/dist/api/namespace.d.ts +18 -0
  219. package/dist/api/namespace.js.map +1 -0
  220. package/dist/api/namespace_alarm_and_condition.d.ts +33 -0
  221. package/dist/api/namespace_alarm_and_condition.js.map +1 -0
  222. package/dist/api/namespace_data_access.d.ts +67 -0
  223. package/dist/api/namespace_data_access.js.map +1 -0
  224. package/dist/api/namespace_machine_state.d.ts +8 -0
  225. package/dist/api/namespace_machine_state.js.map +1 -0
  226. package/dist/api/pseudo_session.d.ts +74 -0
  227. package/dist/api/pseudo_session.js +308 -0
  228. package/dist/api/pseudo_session.js.map +1 -0
  229. package/dist/api/session_context.d.ts +242 -0
  230. package/dist/api/session_context.js.map +1 -0
  231. package/dist/api/set_namespace_meta_data.js.map +1 -0
  232. package/dist/api/ua_addin.js.map +1 -0
  233. package/dist/api/ua_interface.js +25 -0
  234. package/dist/api/ua_interface.js.map +1 -0
  235. package/dist/api/ua_root_folder.js.map +1 -0
  236. package/dist/api/ua_two_state_variable_ex.d.ts +24 -0
  237. package/dist/api/ua_two_state_variable_ex.js.map +1 -0
  238. package/dist/api/xml_writer.js.map +1 -0
  239. package/dist/impl/_instantiate_helpers.js +99 -0
  240. package/dist/impl/_instantiate_helpers.js.map +1 -0
  241. package/dist/impl/_mandatory_child_or_requested_optional_filter.js +82 -0
  242. package/dist/impl/_mandatory_child_or_requested_optional_filter.js.map +1 -0
  243. package/dist/impl/address_space.d.ts +379 -0
  244. package/dist/impl/address_space.js +1383 -0
  245. package/dist/impl/address_space.js.map +1 -0
  246. package/dist/impl/address_space_change_event_tools.d.ts +6 -0
  247. package/dist/impl/address_space_change_event_tools.js.map +1 -0
  248. package/dist/impl/address_space_private.d.ts +48 -0
  249. package/dist/impl/address_space_private.js.map +1 -0
  250. package/dist/impl/alarms_and_conditions/condition.js.map +1 -0
  251. package/dist/impl/alarms_and_conditions/condition_info_impl.d.ts +19 -0
  252. package/dist/impl/alarms_and_conditions/condition_info_impl.js +39 -0
  253. package/dist/impl/alarms_and_conditions/condition_info_impl.js.map +1 -0
  254. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.d.ts +271 -0
  255. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js +700 -0
  256. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js.map +1 -0
  257. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.d.ts +12 -0
  258. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js +66 -0
  259. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js.map +1 -0
  260. package/dist/impl/alarms_and_conditions/index.d.ts +16 -0
  261. package/dist/impl/alarms_and_conditions/index.js +33 -0
  262. package/dist/impl/alarms_and_conditions/index.js.map +1 -0
  263. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +54 -0
  264. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -0
  265. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -0
  266. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.d.ts +105 -0
  267. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js +428 -0
  268. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -0
  269. package/dist/impl/alarms_and_conditions/ua_base_event_impl.d.ts +36 -0
  270. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js +32 -0
  271. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js.map +1 -0
  272. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +47 -0
  273. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +204 -0
  274. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -0
  275. package/dist/impl/alarms_and_conditions/ua_condition_impl.d.ts +152 -0
  276. package/dist/impl/alarms_and_conditions/ua_condition_impl.js +1016 -0
  277. package/dist/impl/alarms_and_conditions/ua_condition_impl.js.map +1 -0
  278. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +22 -0
  279. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js +41 -0
  280. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -0
  281. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +30 -0
  282. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +54 -0
  283. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -0
  284. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +12 -0
  285. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +13 -0
  286. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -0
  287. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +28 -0
  288. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -0
  289. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -0
  290. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -0
  291. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +8 -0
  292. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -0
  293. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.d.ts +49 -0
  294. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js +207 -0
  295. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -0
  296. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +28 -0
  297. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +54 -0
  298. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -0
  299. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +38 -0
  300. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +172 -0
  301. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -0
  302. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +44 -0
  303. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js +164 -0
  304. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -0
  305. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -0
  306. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +18 -0
  307. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -0
  308. package/dist/impl/apply_condition_refresh.d.ts +4 -0
  309. package/dist/impl/apply_condition_refresh.js +29 -0
  310. package/dist/impl/apply_condition_refresh.js.map +1 -0
  311. package/dist/impl/base_node_impl.d.ts +347 -0
  312. package/dist/impl/base_node_impl.js +1768 -0
  313. package/dist/impl/base_node_impl.js.map +1 -0
  314. package/dist/impl/base_node_private.d.ts +138 -0
  315. package/dist/impl/base_node_private.js +1028 -0
  316. package/dist/impl/base_node_private.js.map +1 -0
  317. package/dist/impl/check_value_rank_compatibility.js.map +1 -0
  318. package/dist/impl/child_accessors.d.ts +43 -0
  319. package/dist/impl/child_accessors.js +222 -0
  320. package/dist/impl/child_accessors.js.map +1 -0
  321. package/dist/impl/data_access/add_dataItem_stuff.js.map +1 -0
  322. package/dist/impl/data_access/adjust_datavalue_status_code.d.ts +7 -0
  323. package/dist/impl/data_access/adjust_datavalue_status_code.js.map +1 -0
  324. package/dist/impl/data_access/ua_multistate_discrete_impl.d.ts +38 -0
  325. package/dist/impl/data_access/ua_multistate_discrete_impl.js +143 -0
  326. package/dist/impl/data_access/ua_multistate_discrete_impl.js.map +1 -0
  327. package/dist/impl/data_access/ua_multistate_value_discrete_impl.d.ts +61 -0
  328. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js +303 -0
  329. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js.map +1 -0
  330. package/dist/impl/data_access/ua_two_state_discrete_impl.d.ts +30 -0
  331. package/dist/impl/data_access/ua_two_state_discrete_impl.js +164 -0
  332. package/dist/impl/data_access/ua_two_state_discrete_impl.js.map +1 -0
  333. package/dist/impl/event_data.d.ts +27 -0
  334. package/dist/impl/event_data.js +73 -0
  335. package/dist/impl/event_data.js.map +1 -0
  336. package/dist/impl/event_layout.d.ts +40 -0
  337. package/dist/impl/event_layout.js +103 -0
  338. package/dist/impl/event_layout.js.map +1 -0
  339. package/dist/impl/extension_object_array_node.d.ts +41 -0
  340. package/dist/impl/extension_object_array_node.js +274 -0
  341. package/dist/impl/extension_object_array_node.js.map +1 -0
  342. package/dist/impl/get_basic_datatype.js.map +1 -0
  343. package/dist/impl/handle_hierarchy_parent.d.ts +33 -0
  344. package/dist/impl/handle_hierarchy_parent.js +103 -0
  345. package/dist/impl/handle_hierarchy_parent.js.map +1 -0
  346. package/dist/impl/historical_access/address_space_historical_data_node.d.ts +21 -0
  347. package/dist/impl/historical_access/address_space_historical_data_node.js +658 -0
  348. package/dist/impl/historical_access/address_space_historical_data_node.js.map +1 -0
  349. package/dist/impl/historizer_factory.d.ts +18 -0
  350. package/dist/impl/historizer_factory.js +16 -0
  351. package/dist/impl/historizer_factory.js.map +1 -0
  352. package/dist/impl/idx_iterator.js.map +1 -0
  353. package/dist/impl/namespace_impl.d.ts +469 -0
  354. package/dist/impl/namespace_impl.js +1845 -0
  355. package/dist/impl/namespace_impl.js.map +1 -0
  356. package/dist/impl/namespace_private.d.ts +25 -0
  357. package/dist/impl/namespace_private.js.map +1 -0
  358. package/dist/impl/nodeid_manager.js +249 -0
  359. package/dist/impl/nodeid_manager.js.map +1 -0
  360. package/dist/impl/nodeset_tools/adjust_namespace_array.js.map +1 -0
  361. package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts +37 -0
  362. package/dist/impl/nodeset_tools/construct_namespace_dependency.js +352 -0
  363. package/dist/impl/nodeset_tools/construct_namespace_dependency.js.map +1 -0
  364. package/dist/impl/nodeset_tools/dump_to_bsd.d.ts +10 -0
  365. package/dist/impl/nodeset_tools/dump_to_bsd.js +176 -0
  366. package/dist/impl/nodeset_tools/dump_to_bsd.js.map +1 -0
  367. package/dist/impl/nodeset_tools/nodeset_to_records.d.ts +67 -0
  368. package/dist/impl/nodeset_tools/nodeset_to_records.js +773 -0
  369. package/dist/impl/nodeset_tools/nodeset_to_records.js.map +1 -0
  370. package/dist/impl/nodeset_tools/nodeset_to_xml.d.ts +28 -0
  371. package/dist/impl/nodeset_tools/nodeset_to_xml.js +1132 -0
  372. package/dist/impl/nodeset_tools/nodeset_to_xml.js.map +1 -0
  373. package/dist/impl/private_namespace.d.ts +5 -0
  374. package/dist/impl/private_namespace.js.map +1 -0
  375. package/dist/impl/reference_impl.d.ts +82 -0
  376. package/dist/impl/reference_impl.js +207 -0
  377. package/dist/impl/reference_impl.js.map +1 -0
  378. package/dist/impl/reference_type_version.d.ts +22 -0
  379. package/dist/impl/reference_type_version.js +22 -0
  380. package/dist/impl/reference_type_version.js.map +1 -0
  381. package/dist/impl/role_permissions.js.map +1 -0
  382. package/dist/impl/state_machine/finite_state_machine.d.ts +81 -0
  383. package/dist/impl/state_machine/finite_state_machine.js +573 -0
  384. package/dist/impl/state_machine/finite_state_machine.js.map +1 -0
  385. package/dist/impl/state_machine/ua_shelving_state_machine_ex.d.ts +64 -0
  386. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js +249 -0
  387. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js.map +1 -0
  388. package/dist/impl/state_machine/ua_two_state_variable.d.ts +55 -0
  389. package/dist/impl/state_machine/ua_two_state_variable.js +323 -0
  390. package/dist/impl/state_machine/ua_two_state_variable.js.map +1 -0
  391. package/dist/impl/tool_isSubtypeOf.d.ts +18 -0
  392. package/dist/impl/tool_isSubtypeOf.js +138 -0
  393. package/dist/impl/tool_isSubtypeOf.js.map +1 -0
  394. package/dist/impl/ua_condition_type.js.map +1 -0
  395. package/dist/impl/ua_data_type_impl.d.ts +87 -0
  396. package/dist/impl/ua_data_type_impl.js +391 -0
  397. package/dist/impl/ua_data_type_impl.js.map +1 -0
  398. package/dist/impl/ua_method_impl.d.ts +48 -0
  399. package/dist/impl/ua_method_impl.js +281 -0
  400. package/dist/impl/ua_method_impl.js.map +1 -0
  401. package/dist/impl/ua_object_impl.d.ts +38 -0
  402. package/dist/impl/ua_object_impl.js +214 -0
  403. package/dist/impl/ua_object_impl.js.map +1 -0
  404. package/dist/impl/ua_object_type_impl.d.ts +55 -0
  405. package/dist/impl/ua_object_type_impl.js +131 -0
  406. package/dist/impl/ua_object_type_impl.js.map +1 -0
  407. package/dist/impl/ua_reference_type_impl.d.ts +42 -0
  408. package/dist/impl/ua_reference_type_impl.js +157 -0
  409. package/dist/impl/ua_reference_type_impl.js.map +1 -0
  410. package/dist/impl/ua_variable_impl.d.ts +391 -0
  411. package/dist/impl/ua_variable_impl.js +2001 -0
  412. package/dist/impl/ua_variable_impl.js.map +1 -0
  413. package/dist/impl/ua_variable_impl_ext_obj.d.ts +23 -0
  414. package/dist/impl/ua_variable_impl_ext_obj.js +753 -0
  415. package/dist/impl/ua_variable_impl_ext_obj.js.map +1 -0
  416. package/dist/impl/ua_variable_type_impl.d.ts +79 -0
  417. package/dist/impl/ua_variable_type_impl.js +279 -0
  418. package/dist/impl/ua_variable_type_impl.js.map +1 -0
  419. package/dist/impl/ua_view_impl.d.ts +18 -0
  420. package/dist/impl/ua_view_impl.js +45 -0
  421. package/dist/impl/ua_view_impl.js.map +1 -0
  422. package/dist/impl/validate_data_type_correctness.d.ts +6 -0
  423. package/dist/impl/validate_data_type_correctness.js +123 -0
  424. package/dist/impl/validate_data_type_correctness.js.map +1 -0
  425. package/dist/tsconfig_base.tsbuildinfo +1 -1
  426. package/distHelpers/address_space_digest.d.ts +4 -0
  427. package/distHelpers/address_space_digest.js +9 -0
  428. package/distHelpers/address_space_digest.js.map +1 -0
  429. package/distHelpers/alarms_and_conditions_demo.d.ts +1 -1
  430. package/distHelpers/assertHasMatchingReference.d.ts +1 -1
  431. package/distHelpers/boiler_system.d.ts +1 -1
  432. package/distHelpers/boiler_system.js +3 -3
  433. package/distHelpers/boiler_system.js.map +1 -1
  434. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +1 -1
  435. package/distHelpers/get_address_space_fixture.js +38 -22
  436. package/distHelpers/get_address_space_fixture.js.map +1 -1
  437. package/distHelpers/get_mini_address_space.d.ts +1 -1
  438. package/distHelpers/get_mini_address_space.js +7 -7
  439. package/distHelpers/get_mini_address_space.js.map +1 -1
  440. package/distHelpers/index.d.ts +9 -9
  441. package/distHelpers/index.js +9 -9
  442. package/distHelpers/index.js.map +1 -1
  443. package/distHelpers/mock_session.d.ts +1 -1
  444. package/distHelpers/mock_session.js +2 -2
  445. package/distHelpers/mock_session.js.map +1 -1
  446. package/distNodeJS/address_space_digest.d.ts +13 -0
  447. package/distNodeJS/address_space_digest.js +31 -0
  448. package/distNodeJS/address_space_digest.js.map +1 -0
  449. package/distNodeJS/generate_address_space.d.ts +35 -2
  450. package/distNodeJS/generate_address_space.js +201 -7
  451. package/distNodeJS/generate_address_space.js.map +1 -1
  452. package/distNodeJS/index.d.ts +3 -1
  453. package/distNodeJS/index.js +3 -1
  454. package/distNodeJS/index.js.map +1 -1
  455. package/distNodeJS/nodeset_image_file_store.d.ts +29 -0
  456. package/distNodeJS/nodeset_image_file_store.js +120 -0
  457. package/distNodeJS/nodeset_image_file_store.js.map +1 -0
  458. package/impl/_instantiate_helpers.ts +197 -0
  459. package/impl/_mandatory_child_or_requested_optional_filter.ts +100 -0
  460. package/impl/address_space.ts +1572 -0
  461. package/impl/address_space_change_event_tools.ts +177 -0
  462. package/impl/address_space_private.ts +100 -0
  463. package/impl/alarms_and_conditions/condition_info_impl.ts +45 -0
  464. package/impl/alarms_and_conditions/condition_snapshot_impl.ts +793 -0
  465. package/impl/alarms_and_conditions/deviation_alarm_helper.ts +73 -0
  466. package/impl/alarms_and_conditions/index.ts +16 -0
  467. package/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +351 -0
  468. package/impl/alarms_and_conditions/ua_alarm_condition_impl.ts +515 -0
  469. package/impl/alarms_and_conditions/ua_base_event_impl.ts +61 -0
  470. package/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +246 -0
  471. package/impl/alarms_and_conditions/ua_condition_impl.ts +1286 -0
  472. package/impl/alarms_and_conditions/ua_discrete_alarm_impl.ts +60 -0
  473. package/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +95 -0
  474. package/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +21 -0
  475. package/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +112 -0
  476. package/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +25 -0
  477. package/impl/alarms_and_conditions/ua_limit_alarm_impl.ts +265 -0
  478. package/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +94 -0
  479. package/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +232 -0
  480. package/impl/alarms_and_conditions/ua_off_normal_alarm_impl.ts +216 -0
  481. package/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +26 -0
  482. package/impl/apply_condition_refresh.ts +56 -0
  483. package/impl/base_node_impl.ts +2165 -0
  484. package/impl/base_node_private.ts +1420 -0
  485. package/impl/child_accessors.ts +239 -0
  486. package/impl/data_access/adjust_datavalue_status_code.ts +36 -0
  487. package/impl/data_access/ua_multistate_discrete_impl.ts +198 -0
  488. package/impl/data_access/ua_multistate_value_discrete_impl.ts +384 -0
  489. package/impl/data_access/ua_two_state_discrete_impl.ts +195 -0
  490. package/impl/event_data.ts +80 -0
  491. package/impl/event_layout.ts +141 -0
  492. package/impl/extension_object_array_node.ts +343 -0
  493. package/impl/handle_hierarchy_parent.ts +133 -0
  494. package/impl/historical_access/address_space_historical_data_node.ts +849 -0
  495. package/impl/historizer_factory.ts +17 -0
  496. package/impl/namespace_impl.ts +2323 -0
  497. package/impl/namespace_private.ts +68 -0
  498. package/impl/nodeid_manager.ts +293 -0
  499. package/impl/nodeset_tools/construct_namespace_dependency.ts +381 -0
  500. package/impl/nodeset_tools/dump_to_bsd.ts +210 -0
  501. package/impl/nodeset_tools/nodeset_to_records.ts +846 -0
  502. package/impl/nodeset_tools/nodeset_to_xml.ts +1326 -0
  503. package/impl/private_namespace.ts +21 -0
  504. package/impl/reference_impl.ts +244 -0
  505. package/impl/reference_type_version.ts +19 -0
  506. package/impl/state_machine/finite_state_machine.ts +676 -0
  507. package/impl/state_machine/ua_shelving_state_machine_ex.ts +356 -0
  508. package/impl/state_machine/ua_two_state_variable.ts +421 -0
  509. package/impl/tool_isSubtypeOf.ts +168 -0
  510. package/impl/ua_data_type_impl.ts +486 -0
  511. package/impl/ua_method_impl.ts +364 -0
  512. package/impl/ua_object_impl.ts +278 -0
  513. package/impl/ua_object_type_impl.ts +179 -0
  514. package/impl/ua_reference_type_impl.ts +179 -0
  515. package/impl/ua_variable_impl.ts +2559 -0
  516. package/impl/ua_variable_impl_ext_obj.ts +904 -0
  517. package/impl/ua_variable_type_impl.ts +390 -0
  518. package/impl/ua_view_impl.ts +53 -0
  519. package/impl/validate_data_type_correctness.ts +142 -0
  520. package/package.json +49 -44
  521. package/source_nodejs/address_space_digest.ts +35 -0
  522. package/source_nodejs/generate_address_space.ts +181 -8
  523. package/source_nodejs/index.ts +3 -1
  524. package/source_nodejs/nodeset_image_file_store.ts +127 -0
  525. package/dist/source/address_space_ts.d.ts +0 -128
  526. package/dist/source/address_space_ts.js +0 -23
  527. package/dist/source/address_space_ts.js.map +0 -1
  528. package/dist/source/continuation_points/continuation_point_manager.js +0 -230
  529. package/dist/source/continuation_points/continuation_point_manager.js.map +0 -1
  530. package/dist/source/helpers/adjust_browse_direction.js.map +0 -1
  531. package/dist/source/helpers/argument_list.js +0 -263
  532. package/dist/source/helpers/argument_list.js.map +0 -1
  533. package/dist/source/helpers/call_helpers.js +0 -80
  534. package/dist/source/helpers/call_helpers.js.map +0 -1
  535. package/dist/source/helpers/coerce_enum_value.d.ts +0 -6
  536. package/dist/source/helpers/coerce_enum_value.js.map +0 -1
  537. package/dist/source/helpers/dump_tools.js +0 -81
  538. package/dist/source/helpers/dump_tools.js.map +0 -1
  539. package/dist/source/helpers/ensure_secure_access.d.ts +0 -9
  540. package/dist/source/helpers/ensure_secure_access.js +0 -58
  541. package/dist/source/helpers/ensure_secure_access.js.map +0 -1
  542. package/dist/source/helpers/make_optionals_map.js.map +0 -1
  543. package/dist/source/helpers/multiform_func.js +0 -75
  544. package/dist/source/helpers/multiform_func.js.map +0 -1
  545. package/dist/source/helpers/resolve_opaque_on_address_space.js +0 -25
  546. package/dist/source/helpers/resolve_opaque_on_address_space.js.map +0 -1
  547. package/dist/source/index.d.ts +0 -66
  548. package/dist/source/index.js +0 -97
  549. package/dist/source/index.js.map +0 -1
  550. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +0 -21
  551. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +0 -3
  552. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js.map +0 -1
  553. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +0 -150
  554. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js.map +0 -1
  555. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +0 -12
  556. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js.map +0 -1
  557. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js.map +0 -1
  558. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +0 -7
  559. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js.map +0 -1
  560. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js.map +0 -1
  561. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +0 -4
  562. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +0 -1
  563. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +0 -4
  564. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js.map +0 -1
  565. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +0 -10
  566. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js.map +0 -1
  567. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +0 -4
  568. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +0 -1
  569. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +0 -4
  570. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +0 -1
  571. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +0 -20
  572. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js.map +0 -1
  573. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +0 -21
  574. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js.map +0 -1
  575. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +0 -33
  576. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js.map +0 -1
  577. package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.js.map +0 -1
  578. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +0 -19
  579. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js.map +0 -1
  580. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +0 -44
  581. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js.map +0 -1
  582. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +0 -4
  583. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +0 -1
  584. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +0 -5
  585. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js.map +0 -1
  586. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +0 -19
  587. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js.map +0 -1
  588. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +0 -25
  589. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js.map +0 -1
  590. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +0 -8
  591. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js.map +0 -1
  592. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +0 -10
  593. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js.map +0 -1
  594. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +0 -44
  595. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js.map +0 -1
  596. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +0 -22
  597. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +0 -1
  598. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +0 -13
  599. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js.map +0 -1
  600. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js.map +0 -1
  601. package/dist/source/interfaces/extension_object_constructor.js.map +0 -1
  602. package/dist/source/interfaces/i_condition_variable_type_setter_options.js.map +0 -1
  603. package/dist/source/interfaces/i_set_state_options.js.map +0 -1
  604. package/dist/source/interfaces/nodeset_loader_options.d.ts +0 -37
  605. package/dist/source/interfaces/nodeset_loader_options.js.map +0 -1
  606. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +0 -12
  607. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +0 -1
  608. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +0 -49
  609. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js.map +0 -1
  610. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +0 -11
  611. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js.map +0 -1
  612. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +0 -29
  613. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js.map +0 -1
  614. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +0 -236
  615. package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +0 -1
  616. package/dist/source/interfaces/state_machine/ua_transition_ex.js.map +0 -1
  617. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +0 -1
  618. package/dist/source/loader/decode_xml_extension_object.d.ts +0 -6
  619. package/dist/source/loader/decode_xml_extension_object.js +0 -69
  620. package/dist/source/loader/decode_xml_extension_object.js.map +0 -1
  621. package/dist/source/loader/ensure_datatype_extracted.js +0 -88
  622. package/dist/source/loader/ensure_datatype_extracted.js.map +0 -1
  623. package/dist/source/loader/generateAddressSpaceRaw.d.ts +0 -29
  624. package/dist/source/loader/generateAddressSpaceRaw.js +0 -188
  625. package/dist/source/loader/generateAddressSpaceRaw.js.map +0 -1
  626. package/dist/source/loader/load_nodeset2.d.ts +0 -15
  627. package/dist/source/loader/load_nodeset2.js +0 -1047
  628. package/dist/source/loader/load_nodeset2.js.map +0 -1
  629. package/dist/source/loader/make_semver_compatible.js.map +0 -1
  630. package/dist/source/loader/make_xml_extension_object_parser.js +0 -422
  631. package/dist/source/loader/make_xml_extension_object_parser.js.map +0 -1
  632. package/dist/source/loader/namespace_post_step.js +0 -57
  633. package/dist/source/loader/namespace_post_step.js.map +0 -1
  634. package/dist/source/loader/parsers/extension_object_parser.js +0 -274
  635. package/dist/source/loader/parsers/extension_object_parser.js.map +0 -1
  636. package/dist/source/loader/parsers/localized_text_parser.js.map +0 -1
  637. package/dist/source/loader/parsers/nodeid_parser.js.map +0 -1
  638. package/dist/source/loader/parsers/qualified_name_parser.js.map +0 -1
  639. package/dist/source/loader/parsers/variant_parser.d.ts +0 -35
  640. package/dist/source/loader/parsers/variant_parser.js +0 -331
  641. package/dist/source/loader/parsers/variant_parser.js.map +0 -1
  642. package/dist/source/loader/register_node_promoter.d.ts +0 -2
  643. package/dist/source/loader/register_node_promoter.js +0 -9
  644. package/dist/source/loader/register_node_promoter.js.map +0 -1
  645. package/dist/source/namespace.d.ts +0 -6
  646. package/dist/source/namespace.js.map +0 -1
  647. package/dist/source/namespace_alarm_and_condition.d.ts +0 -33
  648. package/dist/source/namespace_alarm_and_condition.js.map +0 -1
  649. package/dist/source/namespace_data_access.d.ts +0 -67
  650. package/dist/source/namespace_data_access.js.map +0 -1
  651. package/dist/source/namespace_machine_state.d.ts +0 -8
  652. package/dist/source/namespace_machine_state.js.map +0 -1
  653. package/dist/source/pseudo_session.d.ts +0 -74
  654. package/dist/source/pseudo_session.js +0 -308
  655. package/dist/source/pseudo_session.js.map +0 -1
  656. package/dist/source/session_context.d.ts +0 -241
  657. package/dist/source/session_context.js.map +0 -1
  658. package/dist/source/set_namespace_meta_data.js.map +0 -1
  659. package/dist/source/ua_addin.js.map +0 -1
  660. package/dist/source/ua_interface.js +0 -25
  661. package/dist/source/ua_interface.js.map +0 -1
  662. package/dist/source/ua_root_folder.js.map +0 -1
  663. package/dist/source/ua_two_state_variable_ex.d.ts +0 -24
  664. package/dist/source/ua_two_state_variable_ex.js.map +0 -1
  665. package/dist/source/xml_writer.js.map +0 -1
  666. package/dist/src/_instantiate_helpers.js +0 -99
  667. package/dist/src/_instantiate_helpers.js.map +0 -1
  668. package/dist/src/_mandatory_child_or_requested_optional_filter.js +0 -82
  669. package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +0 -1
  670. package/dist/src/address_space.d.ts +0 -369
  671. package/dist/src/address_space.js +0 -1416
  672. package/dist/src/address_space.js.map +0 -1
  673. package/dist/src/address_space_change_event_tools.d.ts +0 -6
  674. package/dist/src/address_space_change_event_tools.js.map +0 -1
  675. package/dist/src/address_space_private.d.ts +0 -45
  676. package/dist/src/address_space_private.js.map +0 -1
  677. package/dist/src/alarms_and_conditions/condition.js.map +0 -1
  678. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +0 -18
  679. package/dist/src/alarms_and_conditions/condition_info_impl.js +0 -38
  680. package/dist/src/alarms_and_conditions/condition_info_impl.js.map +0 -1
  681. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +0 -269
  682. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +0 -699
  683. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +0 -1
  684. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +0 -12
  685. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +0 -66
  686. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +0 -1
  687. package/dist/src/alarms_and_conditions/index.d.ts +0 -16
  688. package/dist/src/alarms_and_conditions/index.js +0 -33
  689. package/dist/src/alarms_and_conditions/index.js.map +0 -1
  690. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +0 -42
  691. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +0 -243
  692. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +0 -1
  693. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +0 -80
  694. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +0 -415
  695. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +0 -1
  696. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +0 -18
  697. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +0 -33
  698. package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +0 -1
  699. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +0 -44
  700. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +0 -203
  701. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +0 -1
  702. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +0 -104
  703. package/dist/src/alarms_and_conditions/ua_condition_impl.js +0 -1017
  704. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +0 -1
  705. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +0 -19
  706. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +0 -39
  707. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +0 -1
  708. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +0 -25
  709. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +0 -55
  710. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +0 -1
  711. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +0 -11
  712. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +0 -12
  713. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +0 -1
  714. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +0 -23
  715. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +0 -87
  716. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +0 -1
  717. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +0 -10
  718. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +0 -8
  719. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +0 -1
  720. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +0 -26
  721. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +0 -208
  722. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +0 -1
  723. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +0 -23
  724. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +0 -55
  725. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +0 -1
  726. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +0 -27
  727. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +0 -173
  728. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +0 -1
  729. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +0 -43
  730. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +0 -168
  731. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +0 -1
  732. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +0 -18
  733. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +0 -18
  734. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +0 -1
  735. package/dist/src/apply_condition_refresh.d.ts +0 -4
  736. package/dist/src/apply_condition_refresh.js +0 -27
  737. package/dist/src/apply_condition_refresh.js.map +0 -1
  738. package/dist/src/base_node_impl.d.ts +0 -287
  739. package/dist/src/base_node_impl.js +0 -1538
  740. package/dist/src/base_node_impl.js.map +0 -1
  741. package/dist/src/base_node_private.d.ts +0 -87
  742. package/dist/src/base_node_private.js +0 -925
  743. package/dist/src/base_node_private.js.map +0 -1
  744. package/dist/src/check_value_rank_compatibility.js.map +0 -1
  745. package/dist/src/data_access/add_dataItem_stuff.js.map +0 -1
  746. package/dist/src/data_access/adjust_datavalue_status_code.d.ts +0 -7
  747. package/dist/src/data_access/adjust_datavalue_status_code.js.map +0 -1
  748. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +0 -35
  749. package/dist/src/data_access/ua_multistate_discrete_impl.js +0 -142
  750. package/dist/src/data_access/ua_multistate_discrete_impl.js.map +0 -1
  751. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +0 -51
  752. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +0 -302
  753. package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +0 -1
  754. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +0 -20
  755. package/dist/src/data_access/ua_two_state_discrete_impl.js +0 -163
  756. package/dist/src/data_access/ua_two_state_discrete_impl.js.map +0 -1
  757. package/dist/src/event_data.d.ts +0 -18
  758. package/dist/src/event_data.js +0 -70
  759. package/dist/src/event_data.js.map +0 -1
  760. package/dist/src/extension_object_array_node.d.ts +0 -34
  761. package/dist/src/extension_object_array_node.js +0 -262
  762. package/dist/src/extension_object_array_node.js.map +0 -1
  763. package/dist/src/get_basic_datatype.js.map +0 -1
  764. package/dist/src/historical_access/address_space_historical_data_node.d.ts +0 -21
  765. package/dist/src/historical_access/address_space_historical_data_node.js +0 -654
  766. package/dist/src/historical_access/address_space_historical_data_node.js.map +0 -1
  767. package/dist/src/idx_iterator.js.map +0 -1
  768. package/dist/src/index_current.d.ts +0 -50
  769. package/dist/src/index_current.js +0 -82
  770. package/dist/src/index_current.js.map +0 -1
  771. package/dist/src/namespace_impl.d.ts +0 -450
  772. package/dist/src/namespace_impl.js +0 -1876
  773. package/dist/src/namespace_impl.js.map +0 -1
  774. package/dist/src/namespace_private.d.ts +0 -31
  775. package/dist/src/namespace_private.js.map +0 -1
  776. package/dist/src/nodeid_manager.js +0 -249
  777. package/dist/src/nodeid_manager.js.map +0 -1
  778. package/dist/src/nodeset_tools/adjust_namespace_array.js.map +0 -1
  779. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +0 -33
  780. package/dist/src/nodeset_tools/construct_namespace_dependency.js +0 -347
  781. package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +0 -1
  782. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +0 -2
  783. package/dist/src/nodeset_tools/dump_to_bsd.js +0 -164
  784. package/dist/src/nodeset_tools/dump_to_bsd.js.map +0 -1
  785. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +0 -12
  786. package/dist/src/nodeset_tools/nodeset_to_xml.js +0 -1381
  787. package/dist/src/nodeset_tools/nodeset_to_xml.js.map +0 -1
  788. package/dist/src/private_namespace.d.ts +0 -5
  789. package/dist/src/private_namespace.js.map +0 -1
  790. package/dist/src/reference_impl.d.ts +0 -43
  791. package/dist/src/reference_impl.js +0 -152
  792. package/dist/src/reference_impl.js.map +0 -1
  793. package/dist/src/role_permissions.js.map +0 -1
  794. package/dist/src/state_machine/finite_state_machine.d.ts +0 -70
  795. package/dist/src/state_machine/finite_state_machine.js +0 -574
  796. package/dist/src/state_machine/finite_state_machine.js.map +0 -1
  797. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +0 -39
  798. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +0 -249
  799. package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +0 -1
  800. package/dist/src/state_machine/ua_two_state_variable.d.ts +0 -55
  801. package/dist/src/state_machine/ua_two_state_variable.js +0 -323
  802. package/dist/src/state_machine/ua_two_state_variable.js.map +0 -1
  803. package/dist/src/tool_isSubtypeOf.d.ts +0 -18
  804. package/dist/src/tool_isSubtypeOf.js +0 -130
  805. package/dist/src/tool_isSubtypeOf.js.map +0 -1
  806. package/dist/src/ua_condition_type.js.map +0 -1
  807. package/dist/src/ua_data_type_impl.d.ts +0 -87
  808. package/dist/src/ua_data_type_impl.js +0 -393
  809. package/dist/src/ua_data_type_impl.js.map +0 -1
  810. package/dist/src/ua_method_impl.d.ts +0 -48
  811. package/dist/src/ua_method_impl.js +0 -280
  812. package/dist/src/ua_method_impl.js.map +0 -1
  813. package/dist/src/ua_object_impl.d.ts +0 -38
  814. package/dist/src/ua_object_impl.js +0 -214
  815. package/dist/src/ua_object_impl.js.map +0 -1
  816. package/dist/src/ua_object_type_impl.d.ts +0 -55
  817. package/dist/src/ua_object_type_impl.js +0 -131
  818. package/dist/src/ua_object_type_impl.js.map +0 -1
  819. package/dist/src/ua_reference_type_impl.d.ts +0 -42
  820. package/dist/src/ua_reference_type_impl.js +0 -146
  821. package/dist/src/ua_reference_type_impl.js.map +0 -1
  822. package/dist/src/ua_variable_impl.d.ts +0 -379
  823. package/dist/src/ua_variable_impl.js +0 -1940
  824. package/dist/src/ua_variable_impl.js.map +0 -1
  825. package/dist/src/ua_variable_impl_ext_obj.d.ts +0 -23
  826. package/dist/src/ua_variable_impl_ext_obj.js +0 -752
  827. package/dist/src/ua_variable_impl_ext_obj.js.map +0 -1
  828. package/dist/src/ua_variable_type_impl.d.ts +0 -79
  829. package/dist/src/ua_variable_type_impl.js +0 -276
  830. package/dist/src/ua_variable_type_impl.js.map +0 -1
  831. package/dist/src/ua_view_impl.d.ts +0 -18
  832. package/dist/src/ua_view_impl.js +0 -45
  833. package/dist/src/ua_view_impl.js.map +0 -1
  834. package/dist/src/validate_data_type_correctness.d.ts +0 -6
  835. package/dist/src/validate_data_type_correctness.js +0 -106
  836. package/dist/src/validate_data_type_correctness.js.map +0 -1
  837. package/source/address_space_ts.ts +0 -220
  838. package/source/continuation_points/continuation_point_manager.ts +0 -271
  839. package/source/helpers/argument_list.ts +0 -310
  840. package/source/helpers/call_helpers.ts +0 -100
  841. package/source/helpers/coerce_enum_value.ts +0 -33
  842. package/source/helpers/dump_tools.ts +0 -90
  843. package/source/helpers/ensure_secure_access.ts +0 -57
  844. package/source/helpers/multiform_func.ts +0 -78
  845. package/source/helpers/resolve_opaque_on_address_space.ts +0 -26
  846. package/source/index.ts +0 -72
  847. package/source/interfaces/alarms_and_conditions/condition_info_i.ts +0 -24
  848. package/source/interfaces/alarms_and_conditions/condition_snapshot.ts +0 -235
  849. package/source/interfaces/alarms_and_conditions/deviation_stuff.ts +0 -16
  850. package/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.ts +0 -8
  851. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +0 -6
  852. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +0 -6
  853. package/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +0 -13
  854. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +0 -6
  855. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +0 -6
  856. package/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +0 -21
  857. package/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.ts +0 -28
  858. package/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +0 -43
  859. package/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +0 -36
  860. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +0 -55
  861. package/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +0 -17
  862. package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +0 -21
  863. package/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +0 -21
  864. package/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.ts +0 -26
  865. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +0 -29
  866. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.ts +0 -25
  867. package/source/interfaces/data_access/ua_multistate_discrete_ex.ts +0 -57
  868. package/source/interfaces/data_access/ua_multistate_value_discrete_ex.ts +0 -31
  869. package/source/interfaces/data_access/ua_two_state_discrete_ex.ts +0 -15
  870. package/source/interfaces/nodeset_loader_options.ts +0 -38
  871. package/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +0 -20
  872. package/source/interfaces/state_machine/ua_finite_state_machine_type.ts +0 -50
  873. package/source/interfaces/state_machine/ua_program_state_machine_type.ts +0 -14
  874. package/source/interfaces/state_machine/ua_shelved_state_machine_ex.ts +0 -35
  875. package/source/interfaces/state_machine/ua_state_machine_type.ts +0 -288
  876. package/source/loader/decode_xml_extension_object.ts +0 -80
  877. package/source/loader/ensure_datatype_extracted.ts +0 -122
  878. package/source/loader/generateAddressSpaceRaw.ts +0 -219
  879. package/source/loader/load_nodeset2.ts +0 -1275
  880. package/source/loader/make_xml_extension_object_parser.ts +0 -524
  881. package/source/loader/namespace_post_step.ts +0 -68
  882. package/source/loader/parsers/extension_object_parser.ts +0 -374
  883. package/source/loader/parsers/variant_parser.ts +0 -433
  884. package/source/loader/register_node_promoter.ts +0 -6
  885. package/source/namespace.ts +0 -7
  886. package/source/namespace_alarm_and_condition.ts +0 -78
  887. package/source/namespace_data_access.ts +0 -92
  888. package/source/namespace_machine_state.ts +0 -20
  889. package/source/pseudo_session.ts +0 -415
  890. package/source/session_context.ts +0 -725
  891. package/source/ua_interface.ts +0 -38
  892. package/source/ua_two_state_variable_ex.ts +0 -36
  893. package/src/_instantiate_helpers.ts +0 -197
  894. package/src/_mandatory_child_or_requested_optional_filter.ts +0 -100
  895. package/src/address_space.ts +0 -1631
  896. package/src/address_space_change_event_tools.ts +0 -177
  897. package/src/address_space_private.ts +0 -96
  898. package/src/alarms_and_conditions/condition_info_impl.ts +0 -44
  899. package/src/alarms_and_conditions/condition_snapshot_impl.ts +0 -792
  900. package/src/alarms_and_conditions/deviation_alarm_helper.ts +0 -73
  901. package/src/alarms_and_conditions/index.ts +0 -16
  902. package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +0 -331
  903. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +0 -479
  904. package/src/alarms_and_conditions/ua_base_event_impl.ts +0 -42
  905. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +0 -244
  906. package/src/alarms_and_conditions/ua_condition_impl.ts +0 -1261
  907. package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +0 -57
  908. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +0 -94
  909. package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +0 -20
  910. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +0 -109
  911. package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +0 -25
  912. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +0 -244
  913. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +0 -88
  914. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +0 -223
  915. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +0 -218
  916. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +0 -26
  917. package/src/apply_condition_refresh.ts +0 -29
  918. package/src/base_node_impl.ts +0 -1907
  919. package/src/base_node_private.ts +0 -1287
  920. package/src/data_access/adjust_datavalue_status_code.ts +0 -36
  921. package/src/data_access/ua_multistate_discrete_impl.ts +0 -189
  922. package/src/data_access/ua_multistate_value_discrete_impl.ts +0 -369
  923. package/src/data_access/ua_two_state_discrete_impl.ts +0 -184
  924. package/src/event_data.ts +0 -83
  925. package/src/extension_object_array_node.ts +0 -331
  926. package/src/historical_access/address_space_historical_data_node.ts +0 -842
  927. package/src/index_current.ts +0 -51
  928. package/src/namespace_impl.ts +0 -2380
  929. package/src/namespace_private.ts +0 -77
  930. package/src/nodeid_manager.ts +0 -293
  931. package/src/nodeset_tools/construct_namespace_dependency.ts +0 -375
  932. package/src/nodeset_tools/dump_to_bsd.ts +0 -201
  933. package/src/nodeset_tools/nodeset_to_xml.ts +0 -1652
  934. package/src/private_namespace.ts +0 -21
  935. package/src/reference_impl.ts +0 -171
  936. package/src/state_machine/finite_state_machine.ts +0 -668
  937. package/src/state_machine/ua_shelving_state_machine_ex.ts +0 -330
  938. package/src/state_machine/ua_two_state_variable.ts +0 -421
  939. package/src/tool_isSubtypeOf.ts +0 -160
  940. package/src/ua_data_type_impl.ts +0 -483
  941. package/src/ua_method_impl.ts +0 -362
  942. package/src/ua_object_impl.ts +0 -278
  943. package/src/ua_object_type_impl.ts +0 -179
  944. package/src/ua_reference_type_impl.ts +0 -170
  945. package/src/ua_variable_impl.ts +0 -2489
  946. package/src/ua_variable_impl_ext_obj.ts +0 -903
  947. package/src/ua_variable_type_impl.ts +0 -385
  948. package/src/ua_view_impl.ts +0 -53
  949. package/src/validate_data_type_correctness.ts +0 -124
  950. /package/{source → api}/helpers/adjust_browse_direction.ts +0 -0
  951. /package/{source → api}/helpers/make_optionals_map.ts +0 -0
  952. /package/{source → api}/interfaces/alarms_and_conditions/install_setpoint_options.ts +0 -0
  953. /package/{source → api}/interfaces/alarms_and_conditions/instantiate_condition_options.ts +0 -0
  954. /package/{source → api}/interfaces/alarms_and_conditions/ua_base_event_ex.ts +0 -0
  955. /package/{source → api}/interfaces/data_access/ua_y_array_item_ex.ts +0 -0
  956. /package/{source → api}/interfaces/extension_object_constructor.ts +0 -0
  957. /package/{source → api}/interfaces/i_condition_variable_type_setter_options.ts +0 -0
  958. /package/{source → api}/interfaces/i_set_state_options.ts +0 -0
  959. /package/{source → api}/interfaces/state_machine/ua_transition_ex.ts +0 -0
  960. /package/{source → api}/interfaces/ua_subscription_diagnostics_variable_ex.ts +0 -0
  961. /package/{source → api}/loader/make_semver_compatible.ts +0 -0
  962. /package/{source → api}/loader/parsers/localized_text_parser.ts +0 -0
  963. /package/{source → api}/loader/parsers/nodeid_parser.ts +0 -0
  964. /package/{source → api}/loader/parsers/qualified_name_parser.ts +0 -0
  965. /package/{source → api}/set_namespace_meta_data.ts +0 -0
  966. /package/{source → api}/ua_addin.ts +0 -0
  967. /package/{source → api}/ua_root_folder.ts +0 -0
  968. /package/{source → api}/xml_writer.ts +0 -0
  969. /package/dist/{source → api}/continuation_points/continuation_point_manager.d.ts +0 -0
  970. /package/dist/{source → api}/helpers/adjust_browse_direction.d.ts +0 -0
  971. /package/dist/{source → api}/helpers/adjust_browse_direction.js +0 -0
  972. /package/dist/{source → api}/helpers/argument_list.d.ts +0 -0
  973. /package/dist/{source → api}/helpers/call_helpers.d.ts +0 -0
  974. /package/dist/{source → api}/helpers/coerce_enum_value.js +0 -0
  975. /package/dist/{source → api}/helpers/dump_tools.d.ts +0 -0
  976. /package/dist/{source → api}/helpers/make_optionals_map.d.ts +0 -0
  977. /package/dist/{source → api}/helpers/make_optionals_map.js +0 -0
  978. /package/dist/{source → api}/helpers/multiform_func.d.ts +0 -0
  979. /package/dist/{source → api}/helpers/resolve_opaque_on_address_space.d.ts +0 -0
  980. /package/dist/{source → api}/interfaces/alarms_and_conditions/condition_snapshot.js +0 -0
  981. /package/dist/{source → api}/interfaces/alarms_and_conditions/deviation_stuff.js +0 -0
  982. /package/dist/{source → api}/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +0 -0
  983. /package/dist/{source → api}/interfaces/alarms_and_conditions/install_setpoint_options.js +0 -0
  984. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +0 -0
  985. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +0 -0
  986. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_condition_options.js +0 -0
  987. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +0 -0
  988. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +0 -0
  989. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +0 -0
  990. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +0 -0
  991. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +0 -0
  992. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +0 -0
  993. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +0 -0
  994. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +0 -0
  995. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts +0 -0
  996. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_base_event_ex.js +0 -0
  997. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +0 -0
  998. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_condition_ex.js +0 -0
  999. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +0 -0
  1000. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +0 -0
  1001. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +0 -0
  1002. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +0 -0
  1003. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +0 -0
  1004. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +0 -0
  1005. /package/dist/{source → api}/interfaces/data_access/ua_multistate_discrete_ex.js +0 -0
  1006. /package/dist/{source → api}/interfaces/data_access/ua_multistate_value_discrete_ex.js +0 -0
  1007. /package/dist/{source → api}/interfaces/data_access/ua_two_state_discrete_ex.js +0 -0
  1008. /package/dist/{source → api}/interfaces/data_access/ua_y_array_item_ex.d.ts +0 -0
  1009. /package/dist/{source → api}/interfaces/data_access/ua_y_array_item_ex.js +0 -0
  1010. /package/dist/{source → api}/interfaces/extension_object_constructor.d.ts +0 -0
  1011. /package/dist/{source → api}/interfaces/extension_object_constructor.js +0 -0
  1012. /package/dist/{source → api}/interfaces/i_condition_variable_type_setter_options.d.ts +0 -0
  1013. /package/dist/{source → api}/interfaces/i_condition_variable_type_setter_options.js +0 -0
  1014. /package/dist/{source → api}/interfaces/i_set_state_options.d.ts +0 -0
  1015. /package/dist/{source → api}/interfaces/i_set_state_options.js +0 -0
  1016. /package/dist/{source → api}/interfaces/nodeset_loader_options.js +0 -0
  1017. /package/dist/{source → api}/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +0 -0
  1018. /package/dist/{source → api}/interfaces/state_machine/ua_finite_state_machine_type.js +0 -0
  1019. /package/dist/{source → api}/interfaces/state_machine/ua_program_state_machine_type.js +0 -0
  1020. /package/dist/{source → api}/interfaces/state_machine/ua_shelved_state_machine_ex.js +0 -0
  1021. /package/dist/{source → api}/interfaces/state_machine/ua_state_machine_type.js +0 -0
  1022. /package/dist/{source → api}/interfaces/state_machine/ua_transition_ex.d.ts +0 -0
  1023. /package/dist/{source → api}/interfaces/state_machine/ua_transition_ex.js +0 -0
  1024. /package/dist/{source → api}/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +0 -0
  1025. /package/dist/{source → api}/interfaces/ua_subscription_diagnostics_variable_ex.js +0 -0
  1026. /package/dist/{source → api}/loader/ensure_datatype_extracted.d.ts +0 -0
  1027. /package/dist/{source → api}/loader/make_semver_compatible.d.ts +0 -0
  1028. /package/dist/{source → api}/loader/make_semver_compatible.js +0 -0
  1029. /package/dist/{source → api}/loader/make_xml_extension_object_parser.d.ts +0 -0
  1030. /package/dist/{source → api}/loader/namespace_post_step.d.ts +0 -0
  1031. /package/dist/{source → api}/loader/parsers/extension_object_parser.d.ts +0 -0
  1032. /package/dist/{source → api}/loader/parsers/localized_text_parser.d.ts +0 -0
  1033. /package/dist/{source → api}/loader/parsers/localized_text_parser.js +0 -0
  1034. /package/dist/{source → api}/loader/parsers/nodeid_parser.d.ts +0 -0
  1035. /package/dist/{source → api}/loader/parsers/nodeid_parser.js +0 -0
  1036. /package/dist/{source → api}/loader/parsers/qualified_name_parser.d.ts +0 -0
  1037. /package/dist/{source → api}/loader/parsers/qualified_name_parser.js +0 -0
  1038. /package/dist/{source → api}/namespace.js +0 -0
  1039. /package/dist/{source → api}/namespace_alarm_and_condition.js +0 -0
  1040. /package/dist/{source → api}/namespace_data_access.js +0 -0
  1041. /package/dist/{source → api}/namespace_machine_state.js +0 -0
  1042. /package/dist/{source → api}/session_context.js +0 -0
  1043. /package/dist/{source → api}/set_namespace_meta_data.d.ts +0 -0
  1044. /package/dist/{source → api}/set_namespace_meta_data.js +0 -0
  1045. /package/dist/{source → api}/ua_addin.d.ts +0 -0
  1046. /package/dist/{source → api}/ua_addin.js +0 -0
  1047. /package/dist/{source → api}/ua_interface.d.ts +0 -0
  1048. /package/dist/{source → api}/ua_root_folder.d.ts +0 -0
  1049. /package/dist/{source → api}/ua_root_folder.js +0 -0
  1050. /package/dist/{source → api}/ua_two_state_variable_ex.js +0 -0
  1051. /package/dist/{source → api}/xml_writer.d.ts +0 -0
  1052. /package/dist/{source → api}/xml_writer.js +0 -0
  1053. /package/dist/{src → impl}/_instantiate_helpers.d.ts +0 -0
  1054. /package/dist/{src → impl}/_mandatory_child_or_requested_optional_filter.d.ts +0 -0
  1055. /package/dist/{src → impl}/address_space_change_event_tools.js +0 -0
  1056. /package/dist/{src → impl}/address_space_private.js +0 -0
  1057. /package/dist/{src → impl}/alarms_and_conditions/condition.d.ts +0 -0
  1058. /package/dist/{src → impl}/alarms_and_conditions/condition.js +0 -0
  1059. /package/dist/{src → impl}/check_value_rank_compatibility.d.ts +0 -0
  1060. /package/dist/{src → impl}/check_value_rank_compatibility.js +0 -0
  1061. /package/dist/{src → impl}/data_access/add_dataItem_stuff.d.ts +0 -0
  1062. /package/dist/{src → impl}/data_access/add_dataItem_stuff.js +0 -0
  1063. /package/dist/{src → impl}/data_access/adjust_datavalue_status_code.js +0 -0
  1064. /package/dist/{src → impl}/get_basic_datatype.d.ts +0 -0
  1065. /package/dist/{src → impl}/get_basic_datatype.js +0 -0
  1066. /package/dist/{src → impl}/idx_iterator.d.ts +0 -0
  1067. /package/dist/{src → impl}/idx_iterator.js +0 -0
  1068. /package/dist/{src → impl}/namespace_private.js +0 -0
  1069. /package/dist/{src → impl}/nodeid_manager.d.ts +0 -0
  1070. /package/dist/{src → impl}/nodeset_tools/adjust_namespace_array.d.ts +0 -0
  1071. /package/dist/{src → impl}/nodeset_tools/adjust_namespace_array.js +0 -0
  1072. /package/dist/{src → impl}/private_namespace.js +0 -0
  1073. /package/dist/{src → impl}/role_permissions.d.ts +0 -0
  1074. /package/dist/{src → impl}/role_permissions.js +0 -0
  1075. /package/dist/{src → impl}/ua_condition_type.d.ts +0 -0
  1076. /package/dist/{src → impl}/ua_condition_type.js +0 -0
  1077. /package/{src → impl}/alarms_and_conditions/condition.ts +0 -0
  1078. /package/{src → impl}/check_value_rank_compatibility.ts +0 -0
  1079. /package/{src → impl}/data_access/add_dataItem_stuff.ts +0 -0
  1080. /package/{src → impl}/get_basic_datatype.ts +0 -0
  1081. /package/{src → impl}/idx_iterator.ts +0 -0
  1082. /package/{src → impl}/nodeset_tools/adjust_namespace_array.ts +0 -0
  1083. /package/{src → impl}/role_permissions.ts +0 -0
  1084. /package/{src → impl}/ua_condition_type.ts +0 -0
@@ -0,0 +1,1326 @@
1
+ /**
2
+ * @module node-opcua-address-space
3
+ */
4
+ // produce nodeset xml files
5
+
6
+ import { types } from "node:util";
7
+ import type {
8
+ BaseNode,
9
+ IAddressSpace,
10
+ UADataType,
11
+ UAMethod,
12
+ UAObject,
13
+ UAReference,
14
+ UAReferenceType,
15
+ UAVariable,
16
+ UAVariableType,
17
+ UAView
18
+ } from "node-opcua-address-space-base";
19
+ import { assert } from "node-opcua-assert";
20
+ import { AttributeIds, type Int64, isMinDate, type StatusCode } from "node-opcua-basic-types";
21
+ import { VariableIds } from "node-opcua-constants";
22
+ import { type LocalizedText, makeAccessLevelFlag, NodeClass, QualifiedName } from "node-opcua-data-model";
23
+ import { make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
24
+ import type { ExtensionObject } from "node-opcua-extension-object";
25
+ import { NodeId, NodeIdType } from "node-opcua-nodeid";
26
+ import { EnumDefinition, StructureDefinition, StructureType } from "node-opcua-types";
27
+ import { isNullOrUndefined, lowerFirstLetter } from "node-opcua-utils";
28
+ import { DataType, Variant, VariantArrayType } from "node-opcua-variant";
29
+ import XMLWriter from "xml-writer";
30
+ import { makeDefinitionMap } from "../../api/loader/decode_xml_extension_object.js";
31
+ import type { DefinitionMap2 } from "../../api/loader/make_xml_extension_object_parser.js";
32
+ import { SessionContext } from "../../api/session_context.js";
33
+ import type { XmlWriter } from "../../api/xml_writer.js";
34
+ import { BaseNodeImpl, getReferenceType } from "../base_node_impl.js";
35
+ import { NamespaceImpl } from "../namespace_impl.js";
36
+ import { ReferenceImpl } from "../reference_impl.js";
37
+ import { UAMethodImpl } from "../ua_method_impl.js";
38
+ import { UAObjectImpl } from "../ua_object_impl.js";
39
+ import { UAObjectTypeImpl } from "../ua_object_type_impl.js";
40
+ import { UAVariableImpl } from "../ua_variable_impl.js";
41
+ import type { UAVariableTypeImpl } from "../ua_variable_type_impl.js";
42
+ import {
43
+ _constructNamespaceTranslationTable,
44
+ constructNamespaceDependency,
45
+ constructNamespacePriorityTable
46
+ } from "./construct_namespace_dependency.js";
47
+ import { type NodesetWalkEvent, namespaceToWalkEvents, nodeToWalkEvents, sortByNodeId } from "./nodeset_to_records.js";
48
+
49
+ const debugLog = make_debugLog("nodeset_to_xml");
50
+ const warningLog = make_warningLog("nodeset_to_xml");
51
+ const errorLog = make_errorLog("nodeset_to_xml");
52
+ const doDebug = false;
53
+
54
+ function _hash(node: BaseNode | UAReference): string {
55
+ return node.nodeId.toString();
56
+ }
57
+
58
+ function _dumpDisplayName(xw: XmlWriter, node: BaseNode): void {
59
+ if (node.displayName?.[0]) {
60
+ xw.startElement("DisplayName")
61
+ .text(node.displayName[0].text || "")
62
+ .endElement();
63
+ }
64
+ }
65
+ function _dumpDescription(xw: XmlWriter, node: { description?: LocalizedText }): void {
66
+ if (node.description?.text?.length) {
67
+ let desc = node.description.text;
68
+ desc = desc || "";
69
+ xw.startElement("Description").text(desc).endElement();
70
+ }
71
+ }
72
+
73
+ function translateNodeId(xw: XmlWriter, nodeId: NodeId): NodeId {
74
+ assert(nodeId instanceof NodeId);
75
+ const nn = xw.translationTable.get(nodeId.namespace);
76
+ const translatedNode = new NodeId(nodeId.identifierType, nodeId.value, nn);
77
+ return translatedNode;
78
+ }
79
+
80
+ function n(xw: XmlWriter, nodeId: NodeId): string {
81
+ return translateNodeId(xw, nodeId).toString().replace("ns=0;", "");
82
+ }
83
+
84
+ function translateBrowseName(xw: XmlWriter, browseName: QualifiedName): QualifiedName {
85
+ assert(browseName instanceof QualifiedName);
86
+ const nn = xw.translationTable.get(browseName.namespaceIndex);
87
+ const translatedBrowseName = new QualifiedName({ namespaceIndex: nn, name: browseName.name });
88
+ return translatedBrowseName;
89
+ }
90
+
91
+ function b(xw: XmlWriter, browseName: QualifiedName): string {
92
+ return translateBrowseName(xw, browseName).toString().replace("ns=0;", "");
93
+ }
94
+
95
+ function hasHigherPriorityThan(namespaceIndex1: number, namespaceIndex2: number, priorityTable: number[]) {
96
+ const order1 = priorityTable[namespaceIndex1];
97
+ const order2 = priorityTable[namespaceIndex2];
98
+ return order1 > order2;
99
+ }
100
+
101
+ function _hasHigherPriorityThan(xw: XmlWriter, namespaceIndex1: number, namespaceIndex2: number) {
102
+ assert(xw.priorityTable, "expecting a priorityTable");
103
+ assert(namespaceIndex1 < xw.priorityTable.length);
104
+ assert(namespaceIndex2 < xw.priorityTable.length);
105
+ return hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, xw.priorityTable);
106
+ }
107
+
108
+ function _mustFindReferenceType(addressSpace: IAddressSpace, name: string): UAReferenceType {
109
+ const referenceType = addressSpace.findReferenceType(name);
110
+ // c8 ignore next
111
+ if (!referenceType) {
112
+ throw new Error(`Cannot find standard reference type ${name}: please check your nodeset file`);
113
+ }
114
+ return referenceType;
115
+ }
116
+
117
+ function _dumpReferences(xw: XmlWriter, node: BaseNode) {
118
+ xw.startElement("References");
119
+
120
+ const addressSpace = node.addressSpace;
121
+
122
+ const aggregateReferenceType = _mustFindReferenceType(addressSpace, "Aggregates");
123
+ // const hasChildReferenceType = _mustFindReferenceType(addressSpace, "HasChild");
124
+ const hasSubtypeReferenceType = _mustFindReferenceType(addressSpace, "HasSubtype");
125
+ const hasTypeDefinitionReferenceType = _mustFindReferenceType(addressSpace, "HasTypeDefinition");
126
+ const nonHierarchicalReferencesType = _mustFindReferenceType(addressSpace, "NonHierarchicalReferences");
127
+ const organizesReferencesType = _mustFindReferenceType(addressSpace, "Organizes");
128
+ // ConnectsTo is genuinely optional: not every nodeset registers it, and the check
129
+ // below already tolerates it being absent.
130
+ const connectsToReferenceType = addressSpace.findReferenceType("ConnectsTo");
131
+ const hasEventSourceReferenceType = _mustFindReferenceType(addressSpace, "HasEventSource");
132
+
133
+ function referenceToKeep(reference: UAReference): boolean {
134
+ // resolved here: a reference nobody has looked at since the load carries only the NodeId of its type
135
+ const referenceType = ReferenceImpl.resolveReferenceType(addressSpace, reference);
136
+ if (!referenceType) {
137
+ return false;
138
+ }
139
+ const targetedNamespaceIndex = reference.nodeId.namespace;
140
+
141
+ // get the direct backward reference to a external namespace
142
+ if (referenceType.isSubtypeOf(aggregateReferenceType) && !reference.isForward) {
143
+ if (reference.nodeId.namespace !== node.nodeId.namespace) {
144
+ // todo: may be check that reference.nodeId.namespace is one of the namespace
145
+ // on which our namespace is build and not a derived one !
146
+ return true;
147
+ }
148
+ }
149
+ if (referenceType.isSubtypeOf(hasSubtypeReferenceType) && reference.isForward) {
150
+ // return false;
151
+ }
152
+ // only keep
153
+ if (referenceType.isSubtypeOf(aggregateReferenceType) && reference.isForward) {
154
+ if (_hasHigherPriorityThan(xw, targetedNamespaceIndex, node.nodeId.namespace)) {
155
+ return false;
156
+ }
157
+ return true;
158
+ } else if (referenceType.isSubtypeOf(hasSubtypeReferenceType) && !reference.isForward) {
159
+ return true;
160
+ } else if (referenceType.isSubtypeOf(hasTypeDefinitionReferenceType) && reference.isForward) {
161
+ return true;
162
+ } else if (referenceType.isSubtypeOf(nonHierarchicalReferencesType) && reference.isForward) {
163
+ // e.g. HasInterface — always keep, the current node owns this reference
164
+ return true;
165
+ } else if (referenceType.isSubtypeOf(organizesReferencesType) && !reference.isForward) {
166
+ // Organizes inverse — the current node is organized by an external folder
167
+ return true;
168
+ } else if (connectsToReferenceType && referenceType.isSubtypeOf(connectsToReferenceType) && reference.isForward) {
169
+ return true;
170
+ } else if (referenceType.isSubtypeOf(hasEventSourceReferenceType) && reference.isForward) {
171
+ return true;
172
+ }
173
+ return false;
174
+ }
175
+ const allReferences = node.allReferences();
176
+ const references = allReferences.filter(referenceToKeep);
177
+
178
+ for (const reference of references.sort(sortByNodeId)) {
179
+ if (getReferenceType(reference).browseName.toString() === "HasSubtype" && reference.isForward) {
180
+ continue;
181
+ }
182
+ xw.startElement("Reference");
183
+
184
+ xw.writeAttribute("ReferenceType", b(xw, getReferenceType(reference).browseName));
185
+
186
+ if (!reference.isForward) {
187
+ xw.writeAttribute("IsForward", reference.isForward ? "true" : "false");
188
+ }
189
+ xw.text(n(xw, reference.nodeId));
190
+
191
+ xw.endElement();
192
+ }
193
+ xw.endElement();
194
+ }
195
+ function _dumpLocalizedText(xw: XmlWriter, v: LocalizedText) {
196
+ const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
197
+ if (v.locale?.length) {
198
+ xw.startElement(`${uax}Locale`);
199
+ xw.text(v.locale);
200
+ xw.endElement();
201
+ }
202
+ xw.startElement(`${uax}Text`);
203
+ if (v.text) {
204
+ xw.text(v.text);
205
+ }
206
+ xw.endElement();
207
+ }
208
+ function _dumpQualifiedName(xw: XmlWriter, v: QualifiedName) {
209
+ const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
210
+ const t = translateBrowseName(xw, v);
211
+ if (t.name) {
212
+ xw.startElement(`${uax}Name`);
213
+ xw.text(t.name);
214
+ xw.endElement();
215
+ }
216
+ if (t.namespaceIndex) {
217
+ xw.startElement(`${uax}NamespaceIndex`);
218
+ xw.text(t.namespaceIndex.toString());
219
+ xw.endElement();
220
+ }
221
+ }
222
+ function _dumpXmlElement(xw: XmlWriter, v: string) {
223
+ xw.text(v);
224
+ }
225
+ /*
226
+ <uax:ExtensionObject>
227
+ <uax:TypeId>
228
+ <uax:Identifier>i=339</uax:Identifier>
229
+ </uax:TypeId>
230
+ <uax:Body>
231
+ <BuildInfo xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
232
+ <ProductUri></ProductUri>
233
+ <ManufacturerName></ManufacturerName>
234
+ <ProductName></ProductName>
235
+ <SoftwareVersion></SoftwareVersion>
236
+ <BuildNumber></BuildNumber>
237
+ <BuildDate>1900-01-01T00:00:00Z</BuildDate>
238
+ </BuildInfo>
239
+ </uax:Body>
240
+ </uax:ExtensionObject>
241
+ */
242
+ type XmlNamespaceUri = string;
243
+ type NamespaceUri = string;
244
+ type XmlNs = string;
245
+ interface XmlWriterEx extends XmlWriter {
246
+ map: Record<XmlNamespaceUri, XmlNs>;
247
+ stackMap: Record<XmlNamespaceUri, XmlNs>[];
248
+ namespaceArray: NamespaceUri[];
249
+ }
250
+ export function initXmlWriterEx(xw: XmlWriter, map: Record<XmlNamespaceUri, XmlNs>, namespaceArray: NamespaceUri[]): void {
251
+ const xwe = xw as XmlWriterEx;
252
+ xwe.map = map;
253
+ xwe.stackMap = [];
254
+ xwe.namespaceArray = namespaceArray;
255
+ }
256
+ function findXsdNamespaceUri(xw: XmlWriter, nodeId: NodeId): string {
257
+ const xwe = xw as XmlWriterEx;
258
+ if (!xwe.namespaceArray) {
259
+ return "";
260
+ }
261
+ const namespace = xwe.namespaceArray[nodeId.namespace];
262
+ if (namespace === "http://opcfoundation.org/UA/") {
263
+ return "http://opcfoundation.org/UA/2008/02/Types.xsd";
264
+ }
265
+ // c8 ignore next
266
+ if (!namespace) {
267
+ return "";
268
+ }
269
+ return `${namespace.replace(/\/$/, "")}/Types.xsd`;
270
+ }
271
+
272
+ function getPrefix(xw: XmlWriter, namespace: XmlNamespaceUri): XmlNs {
273
+ const xwe = xw as XmlWriterEx;
274
+ if (!xwe.map) return "";
275
+ const p = xwe.map[namespace] || "";
276
+ return p ? `${p}:` : "";
277
+ }
278
+
279
+ function restoreDefaultNamespace(xw: XmlWriter) {
280
+ const xwe = xw as XmlWriterEx;
281
+ if (!xwe.map) return;
282
+ const previousMap = xwe.stackMap.pop();
283
+ if (previousMap) {
284
+ xwe.map = previousMap;
285
+ }
286
+ }
287
+
288
+ function setDefaultNamespace(xw: XmlWriter, namespace: XmlNamespaceUri): void {
289
+ const xwe = xw as XmlWriterEx;
290
+ if (!xwe.map) return;
291
+ if (xwe.map[namespace] !== "") {
292
+ xw.writeAttribute("xmlns", namespace);
293
+ }
294
+
295
+ xwe.stackMap.push({
296
+ ...xwe.map
297
+ });
298
+ xwe.map[namespace] = "";
299
+ }
300
+
301
+ function startElementEx(xw: XmlWriter, _ns: XmlNs, name: string, defaultNamespace: XmlNamespaceUri) {
302
+ const _xwe = xw as XmlWriterEx;
303
+ xw.startElement(name);
304
+ setDefaultNamespace(xw, defaultNamespace);
305
+ }
306
+
307
+ function _dumpNodeId(xw: XmlWriter, v: NodeId) {
308
+ const xmlns = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
309
+ xw.startElement(`${xmlns}Identifier`);
310
+ xw.text(n(xw, v));
311
+ xw.endElement();
312
+ }
313
+
314
+ function _dumpVariantValue(xw: XmlWriter, dataTypeNodeId: NodeId, dataType: DataType, addressSpace: IAddressSpace, value: unknown) {
315
+ if (value === undefined || value === null) {
316
+ return;
317
+ }
318
+ if (dataType === DataType.Null) {
319
+ return;
320
+ }
321
+ const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
322
+ xw.startElement(`${uax}${DataType[dataType]}`);
323
+ const definitionMap = makeDefinitionMap(addressSpace);
324
+ _dumpVariantInnerValue(xw, dataType, dataTypeNodeId, definitionMap, addressSpace, value);
325
+ xw.endElement();
326
+ }
327
+
328
+ function _dumpVariantInnerExtensionObject(
329
+ xw: XmlWriter,
330
+ definitionMap: DefinitionMap2,
331
+ definition: StructureDefinition,
332
+ addressSpace: IAddressSpace,
333
+ value: ExtensionObject
334
+ ) {
335
+ const namespaceUri = findXsdNamespaceUri(xw, definition.defaultEncodingId);
336
+ const ns = getPrefix(xw, namespaceUri);
337
+
338
+ const isUnion =
339
+ definition.structureType === StructureType.Union || definition.structureType === StructureType.UnionWithSubtypedValues;
340
+
341
+ for (const field of definition.fields || []) {
342
+ const dataTypeNodeId = field.dataType;
343
+
344
+ const fieldName = field.name || "";
345
+ const lowerFieldName = lowerFirstLetter(fieldName);
346
+ const v = (value as unknown as Record<string, unknown>)[lowerFieldName];
347
+ if (v !== null && v !== undefined) {
348
+ if (
349
+ dataTypeNodeId.namespace === 0 &&
350
+ dataTypeNodeId.value === 0 &&
351
+ dataTypeNodeId.identifierType === NodeIdType.NUMERIC
352
+ ) {
353
+ // to do ?? shall we do a extension Object here ?
354
+ continue; // ns=0;i=0 is reserved
355
+ }
356
+
357
+ const { name, definition } = definitionMap.findDefinition(dataTypeNodeId);
358
+
359
+ startElementEx(xw, ns, fieldName, namespaceUri);
360
+ // xw.startElement(fieldName);
361
+
362
+ let fun: (value: unknown) => void = (_value: unknown) => {
363
+ /** */
364
+ };
365
+ if (definition instanceof StructureDefinition) {
366
+ fun = _dumpVariantInnerExtensionObject.bind(null, xw, definitionMap, definition, addressSpace) as (
367
+ value: unknown
368
+ ) => void;
369
+ } else if (definition instanceof EnumDefinition) {
370
+ fun = _dumpVariantInnerValueEnum.bind(null, xw, definition);
371
+ } else if (definition?.dataType === DataType.Variant) {
372
+ fun = (value: unknown) => {
373
+ const variantValue = value as Variant;
374
+ xw.startElement("Value");
375
+ _dumpVariantValue(xw, field.dataType, variantValue.dataType, addressSpace, variantValue.value);
376
+ xw.endElement();
377
+ };
378
+ } else {
379
+ const baseType = definition.dataType;
380
+ fun = _dumpVariantInnerValue.bind(null, xw, baseType, dataTypeNodeId, definitionMap, addressSpace);
381
+ }
382
+ try {
383
+ if (field.valueRank === -1) {
384
+ fun(v);
385
+ } else {
386
+ // array
387
+ for (const arrayItem of v as unknown[]) {
388
+ xw.startElement(name);
389
+ fun(arrayItem);
390
+ xw.endElement();
391
+ }
392
+ }
393
+ } catch (err) {
394
+ if (types.isNativeError(err)) {
395
+ errorLog("Error in _dumpVariantExtensionObjectValue_Body !!!", err.message);
396
+ }
397
+ // c8 ignore next
398
+ if (doDebug) {
399
+ debugLog(name);
400
+ debugLog(field);
401
+ }
402
+ // throw err;
403
+ }
404
+ restoreDefaultNamespace(xw);
405
+ xw.endElement();
406
+ } else {
407
+ if (!isUnion && !field.isOptional) {
408
+ // field is mandatory but is null=> provide an empty array
409
+ startElementEx(xw, ns, fieldName, namespaceUri);
410
+ restoreDefaultNamespace(xw);
411
+ xw.endElement();
412
+ }
413
+ }
414
+ }
415
+ }
416
+
417
+ function _dumpVariantInnerValueEnum(xw: XmlWriter, definition: EnumDefinition, value: unknown): void {
418
+ if (!definition.fields) {
419
+ return;
420
+ }
421
+ const field = definition.fields.find((f) => f.value[1] === value || f.name === value);
422
+ xw.text(`${field?.name}_${field?.value[1]}`);
423
+ }
424
+
425
+ function _dumpVariantInnerValue(
426
+ xw: XmlWriter,
427
+ dataType: DataType,
428
+ dataTypeNodeId: NodeId,
429
+ definitionMap: DefinitionMap2,
430
+ addressSpace: IAddressSpace,
431
+ value: unknown
432
+ ): void {
433
+ const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
434
+ switch (dataType) {
435
+ case null:
436
+ case DataType.Null:
437
+ break;
438
+ case DataType.LocalizedText:
439
+ _dumpLocalizedText(xw, value as LocalizedText);
440
+ break;
441
+ case DataType.QualifiedName:
442
+ _dumpQualifiedName(xw, value as QualifiedName);
443
+ break;
444
+ case DataType.NodeId:
445
+ _dumpNodeId(xw, value as NodeId);
446
+ break;
447
+ case DataType.DateTime:
448
+ xw.text((value as Date).toISOString());
449
+ break;
450
+ case DataType.Int64:
451
+ case DataType.UInt64:
452
+ xw.text((value as [number, number])[1].toString());
453
+ break;
454
+ case DataType.Boolean:
455
+ case DataType.SByte:
456
+ case DataType.Byte:
457
+ case DataType.Float:
458
+ case DataType.Double:
459
+ case DataType.Int16:
460
+ case DataType.Int32:
461
+ case DataType.UInt16:
462
+ case DataType.UInt32:
463
+ case DataType.String:
464
+ xw.text((value as { toString(): string }).toString());
465
+ break;
466
+ case DataType.ByteString:
467
+ {
468
+ const base64 = (value as Buffer).toString("base64");
469
+ const chunks = base64.match(/.{0,80}/g);
470
+ xw.text(base64.length > 80 && chunks ? chunks.join("\n") : base64);
471
+ }
472
+ break;
473
+ case DataType.Guid:
474
+ /*
475
+ <uax:Guid>
476
+ <uax:String>947c29a7-490d-4dc9-adda-1109e3e8fcb7</uax:String>
477
+ </uax:Guid>
478
+ */
479
+ if (value !== undefined && value !== null) {
480
+ // xw.writeAttribute("xmlns", "http://opcfoundation.org/UA/2008/02/Types.xsd");
481
+ xw.startElement(`${uax}String`);
482
+ xw.text((value as { toString(): string }).toString());
483
+ xw.endElement();
484
+ }
485
+ break;
486
+
487
+ case DataType.ExtensionObject:
488
+ _dumpVariantExtensionObjectValue(xw, dataTypeNodeId, definitionMap, addressSpace, value as ExtensionObject);
489
+ break;
490
+ case DataType.XmlElement:
491
+ _dumpXmlElement(xw, value as string);
492
+ break;
493
+ case DataType.StatusCode:
494
+ xw.text((value as StatusCode).value.toString());
495
+ break;
496
+ case DataType.Variant: {
497
+ const variantValue = value as Variant;
498
+ _dumpVariantInnerValue(xw, variantValue.dataType, dataTypeNodeId, definitionMap, addressSpace, variantValue.value);
499
+ break;
500
+ }
501
+ default:
502
+ errorLog(`_dumpVariantInnerValue incomplete ${value} DataType=${dataType}=${DataType[dataType]}`);
503
+ // throw new Error("_dumpVariantInnerValue incomplete " + value + " " + "DataType=" + dataType + "=" + DataType[dataType]);
504
+ }
505
+ }
506
+
507
+ /**
508
+ *
509
+ * @param xw
510
+ * @param schema
511
+ * @param value
512
+ * @private
513
+ */
514
+ export function _dumpVariantExtensionObjectValue_Body(
515
+ xw: XmlWriter,
516
+ definitionMap: DefinitionMap2,
517
+ name: string,
518
+ definition: StructureDefinition,
519
+ addressSpace: IAddressSpace,
520
+ value: ExtensionObject
521
+ ) {
522
+ if (value) {
523
+ const namespaceUri = findXsdNamespaceUri(xw, definition.defaultEncodingId);
524
+ const ns = getPrefix(xw, namespaceUri);
525
+ startElementEx(xw, ns, `${name}`, namespaceUri);
526
+ if (value) {
527
+ _dumpVariantInnerExtensionObject(xw, definitionMap, definition, addressSpace, value);
528
+ }
529
+ restoreDefaultNamespace(xw);
530
+ xw.endElement();
531
+ }
532
+ }
533
+
534
+ function _dumpVariantExtensionObjectValue(
535
+ xw: XmlWriter,
536
+ dataTypeNodeId: NodeId,
537
+ definitionMap: DefinitionMap2,
538
+ addressSpace: IAddressSpace,
539
+ value: ExtensionObject
540
+ ) {
541
+ const { name, definition } = definitionMap.findDefinition(dataTypeNodeId);
542
+ // const encodingDefaultXml = (getStructureTypeConstructor(schema.name) as any).encodingDefaultXml;
543
+ const encodingDefaultXml = value.schema.encodingDefaultXml;
544
+ if (!encodingDefaultXml || encodingDefaultXml.isEmpty()) {
545
+ warningLog("dataType Name ", name, "with ", dataTypeNodeId.toString(), " does not have xml encoding");
546
+ // throw new Error("Extension Object doesn't provide a XML ");
547
+ return;
548
+ }
549
+ const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
550
+ startElementEx(xw, uax, `ExtensionObject`, "http://opcfoundation.org/UA/2008/02/Types.xsd");
551
+ {
552
+ const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
553
+ xw.startElement(`${uax}TypeId`);
554
+ // find HasEncoding node
555
+ // xx var encodingDefaultXml = schema.encodingDefaultXml;
556
+ xw.startElement(`${uax}Identifier`);
557
+ xw.text(n(xw, encodingDefaultXml));
558
+ xw.endElement();
559
+ xw.endElement();
560
+ startElementEx(xw, uax, "Body", "http://opcfoundation.org/UA/2008/02/Types.xsd");
561
+
562
+ _dumpVariantExtensionObjectValue_Body(xw, definitionMap, name, definition as StructureDefinition, addressSpace, value);
563
+
564
+ restoreDefaultNamespace(xw);
565
+ xw.endElement();
566
+ }
567
+ restoreDefaultNamespace(xw);
568
+ xw.endElement();
569
+ }
570
+
571
+ function _dumpVariantExtensionObjectValue2(xw: XmlWriter, addressSpace: IAddressSpace, value: ExtensionObject) {
572
+ const dataTypeNodeId = value.schema.dataTypeNodeId;
573
+ const definitionMap = makeDefinitionMap(addressSpace);
574
+ const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
575
+ if (!dataTypeNode) {
576
+ warningLog("_dumpVariantExtensionObjectValue2: Cannot find dataType for ", dataTypeNodeId.toString());
577
+ return;
578
+ }
579
+ _dumpVariantExtensionObjectValue(xw, dataTypeNode.nodeId, definitionMap, addressSpace, value);
580
+ }
581
+
582
+ export function _isDefaultValue(value: Variant): boolean {
583
+ // detect default value
584
+ if (value.arrayType === VariantArrayType.Scalar) {
585
+ switch (value.dataType) {
586
+ case DataType.ExtensionObject:
587
+ if (!value.value) {
588
+ return true;
589
+ }
590
+ break;
591
+ case DataType.DateTime:
592
+ if (!value.value || isMinDate(value.value)) {
593
+ return true;
594
+ }
595
+ break;
596
+ case DataType.ByteString:
597
+ if (!value.value || value.value.length === 0) {
598
+ return true;
599
+ }
600
+ break;
601
+ case DataType.Boolean:
602
+ return false; // we want it all the time !
603
+ case DataType.SByte:
604
+ case DataType.Byte:
605
+ case DataType.UInt16:
606
+ case DataType.UInt32:
607
+ case DataType.Int16:
608
+ case DataType.Int32:
609
+ case DataType.Double:
610
+ case DataType.Float:
611
+ if (value.value === 0 || value.value === null) {
612
+ return true;
613
+ }
614
+ break;
615
+ case DataType.String:
616
+ if (value.value === null || value.value === "") {
617
+ return true;
618
+ }
619
+ break;
620
+ case DataType.Int64:
621
+ case DataType.UInt64:
622
+ if (0 === coerceInt64ToInt32(value.value)) {
623
+ return true;
624
+ }
625
+ break;
626
+ case DataType.LocalizedText:
627
+ if (!value.value) {
628
+ return true;
629
+ }
630
+ {
631
+ const l = value.value as LocalizedText;
632
+ if (!l.locale && !l.text) {
633
+ return true;
634
+ }
635
+ }
636
+ break;
637
+ }
638
+ return false;
639
+ } else {
640
+ if (!value.value || value.value.length === 0) {
641
+ return true;
642
+ }
643
+ return false;
644
+ }
645
+ }
646
+
647
+ function _dumpValue(xw: XmlWriter, node: UAVariable | UAVariableType, variant: Variant) {
648
+ const addressSpace = node.addressSpace;
649
+
650
+ // c8 ignore next
651
+ if (variant === null || variant === undefined) {
652
+ return;
653
+ }
654
+ assert(variant instanceof Variant);
655
+
656
+ const dataTypeNode = addressSpace.findDataType(node.dataType);
657
+
658
+ // c8 ignore next
659
+ if (!dataTypeNode) {
660
+ // c8 ignore next
661
+ doDebug && debugLog("Cannot find dataType:", node.dataType.toString());
662
+ return;
663
+ }
664
+
665
+ const dataTypeName = dataTypeNode.browseName.name?.toString();
666
+ const baseDataTypeName = DataType[variant.dataType];
667
+
668
+ if (baseDataTypeName === "Null") {
669
+ return;
670
+ }
671
+ assert(typeof baseDataTypeName === "string");
672
+
673
+ // determine if dataTypeName is a ExtensionObject
674
+ const isExtensionObject = variant.dataType === DataType.ExtensionObject;
675
+
676
+ if (_isDefaultValue(variant)) {
677
+ return;
678
+ }
679
+ xw.startElement("Value");
680
+
681
+ const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
682
+ if (isExtensionObject) {
683
+ const encodeXml = _dumpVariantExtensionObjectValue2.bind(null, xw, node.addressSpace);
684
+
685
+ switch (variant.arrayType) {
686
+ case VariantArrayType.Matrix:
687
+ case VariantArrayType.Array:
688
+ startElementEx(xw, uax, `ListOf${baseDataTypeName}`, "http://opcfoundation.org/UA/2008/02/Types.xsd");
689
+ variant.value.forEach(encodeXml);
690
+ restoreDefaultNamespace(xw);
691
+ xw.endElement();
692
+ break;
693
+ case VariantArrayType.Scalar:
694
+ encodeXml(variant.value);
695
+ break;
696
+ default:
697
+ errorLog(node.toString());
698
+ errorLog("_dumpValue : unsupported arrayType: ", variant.arrayType);
699
+ }
700
+ } else {
701
+ const encodeXml = _dumpVariantValue.bind(null, xw, node.dataType, variant.dataType, node.addressSpace);
702
+ switch (variant.arrayType) {
703
+ case VariantArrayType.Matrix:
704
+ case VariantArrayType.Array:
705
+ startElementEx(xw, uax, `ListOf${dataTypeName}`, "http://opcfoundation.org/UA/2008/02/Types.xsd");
706
+ variant.value.forEach(encodeXml);
707
+ restoreDefaultNamespace(xw);
708
+ xw.endElement();
709
+ break;
710
+ case VariantArrayType.Scalar:
711
+ encodeXml(variant.value);
712
+ break;
713
+ default:
714
+ errorLog(node.toString());
715
+ errorLog("_dumpValue : unsupported arrayType: ", variant.arrayType);
716
+ }
717
+ }
718
+
719
+ xw.endElement();
720
+ }
721
+
722
+ function _dumpArrayDimensionsAttribute(xw: XmlWriter, node: UAVariableType | UAVariable) {
723
+ if (node.arrayDimensions) {
724
+ if (node.valueRank === -1 || (node.arrayDimensions.length === 1 && node.arrayDimensions[0] === 0)) {
725
+ return;
726
+ }
727
+ xw.writeAttribute("ArrayDimensions", node.arrayDimensions.join(","));
728
+ }
729
+ }
730
+
731
+ function getParent(node: BaseNode): BaseNode | null {
732
+ if (node instanceof UAVariableImpl || node instanceof UAMethodImpl || node instanceof UAObjectImpl) {
733
+ return node.parent;
734
+ }
735
+ return null;
736
+ }
737
+
738
+ const currentReadFlag = makeAccessLevelFlag("CurrentRead");
739
+ function dumpCommonAttributes(xw: XmlWriter, node: BaseNode) {
740
+ xw.writeAttribute("NodeId", n(xw, node.nodeId));
741
+ xw.writeAttribute("BrowseName", b(xw, node.browseName));
742
+
743
+ const parentNode = getParent(node);
744
+ if (parentNode) {
745
+ if (parentNode.nodeId.namespace <= node.nodeId.namespace) {
746
+ xw.writeAttribute("ParentNodeId", n(xw, parentNode.nodeId));
747
+ }
748
+ }
749
+ if (Object.hasOwn(node, "symbolicName")) {
750
+ xw.writeAttribute("SymbolicName", (node as unknown as { symbolicName: string }).symbolicName);
751
+ }
752
+ if (Object.hasOwn(node, "isAbstract")) {
753
+ const isAbstract = (node as unknown as { isAbstract: boolean }).isAbstract;
754
+ if (isAbstract) {
755
+ xw.writeAttribute("IsAbstract", isAbstract ? "true" : "false");
756
+ }
757
+ }
758
+ // AccessLevel and UserAccessLevel exist in the XSD on UAVariable only. Gate on the node
759
+ // class rather than on the presence of the property: UAVariableTypeImpl happens not to own
760
+ // an accessLevel today, but it does own a `historizing` (see #1550), so a property-presence
761
+ // guard is one refactor away from emitting an attribute the schema rejects.
762
+ if (node.nodeClass === NodeClass.Variable) {
763
+ const variable = node as UAVariable;
764
+ // CurrentRead is by default
765
+ if (variable.accessLevel !== currentReadFlag) {
766
+ xw.writeAttribute("AccessLevel", variable.accessLevel.toString());
767
+ }
768
+ // UserAccessLevel is implicitly accessLevel when omitted (see convertUserAccessLevel in the loader),
769
+ // so it only needs to be written down when it further restricts accessLevel.
770
+ if (variable.userAccessLevel !== undefined && variable.userAccessLevel !== variable.accessLevel) {
771
+ xw.writeAttribute("UserAccessLevel", variable.userAccessLevel.toString());
772
+ }
773
+ }
774
+ // access policy: undefined means "inherit from the namespace", an empty rolePermissions array
775
+ // means "this node deliberately grants nothing".
776
+ if (node.accessRestrictions !== undefined) {
777
+ xw.writeAttribute("AccessRestrictions", node.accessRestrictions.toString());
778
+ }
779
+ if (node.rolePermissions !== undefined && node.rolePermissions.length === 0) {
780
+ xw.writeAttribute("HasNoPermissions", "true");
781
+ }
782
+ if (Object.hasOwn(node, "minimumSamplingInterval")) {
783
+ const minimumSamplingInterval = (node as UAVariable).minimumSamplingInterval;
784
+ if (minimumSamplingInterval > 0) {
785
+ xw.writeAttribute("MinimumSamplingInterval", minimumSamplingInterval);
786
+ }
787
+ }
788
+ // Historizing exists in the XSD on UAVariable only: UAVariableType is restricted to
789
+ // DataType/ValueRank/ArrayDimensions. UAVariableTypeImpl nevertheless owns a `historizing`
790
+ // property, so the node class must be tested here rather than the presence of the property.
791
+ // false being the default, the attribute is only emitted when it is set.
792
+ if (node.nodeClass === NodeClass.Variable && (node as UAVariable).historizing) {
793
+ xw.writeAttribute("Historizing", "true");
794
+ }
795
+ }
796
+
797
+ // the UANode XSD sequence is DisplayName, Description, Category, Documentation, References,
798
+ // RolePermissions, Extensions: RolePermissions must therefore come after References.
799
+ function _dumpRolePermissions(xw: XmlWriter, node: BaseNode) {
800
+ const rolePermissions = node.rolePermissions;
801
+ if (!rolePermissions || rolePermissions.length === 0) {
802
+ // the empty case is carried by the HasNoPermissions attribute
803
+ return;
804
+ }
805
+ xw.startElement("RolePermissions");
806
+ for (const rolePermission of rolePermissions) {
807
+ xw.startElement("RolePermission");
808
+ xw.writeAttribute("Permissions", rolePermission.permissions.toString());
809
+ xw.text(n(xw, rolePermission.roleId));
810
+ xw.endElement();
811
+ }
812
+ xw.endElement();
813
+ }
814
+
815
+ function dumpCommonElements(xw: XmlWriter, node: BaseNode) {
816
+ _dumpDisplayName(xw, node);
817
+ _dumpDescription(xw, node);
818
+ _dumpReferences(xw, node);
819
+ _dumpRolePermissions(xw, node);
820
+ }
821
+
822
+ export function coerceInt64ToInt32(int64: Int64): number {
823
+ if (typeof int64 === "number") {
824
+ return int64 as number;
825
+ }
826
+ if (int64[0] === 0xffffffff && int64[1] === 0xffffffff) {
827
+ return 0xffffffff;
828
+ }
829
+ if (int64[0] !== 0) {
830
+ warningLog("coerceInt64ToInt32 , loosing high word in conversion");
831
+ }
832
+ return int64[1];
833
+ }
834
+
835
+ function _dumpEnumDefinition(xw: XmlWriter, enumDefinition: EnumDefinition) {
836
+ enumDefinition.fields = enumDefinition.fields || [];
837
+
838
+ for (const defItem of enumDefinition.fields) {
839
+ xw.startElement("Field");
840
+ xw.writeAttribute("Name", defItem.name as string);
841
+ if (!isNullOrUndefined(defItem.value)) {
842
+ xw.writeAttribute("Value", coerceInt64ToInt32(defItem.value));
843
+ }
844
+ _dumpDescription(xw, defItem);
845
+ xw.endElement();
846
+ }
847
+ }
848
+ function _dumpStructureDefinition(
849
+ xw: XmlWriter,
850
+ structureDefinition: StructureDefinition,
851
+ baseStructureDefinition: StructureDefinition | null | undefined
852
+ ) {
853
+ /*
854
+ * note: baseDataType and defaultEncodingId are implicit and not stored in the XML file ??
855
+ *
856
+ */
857
+ // const baseDataType = structureDefinition.baseDataType;
858
+ // const defaultEncodingId = structureDefinition.defaultEncodingId;
859
+
860
+ // do not repeat elements that are already defined in base structure in the xml ouput!
861
+ const fields = structureDefinition.fields || [];
862
+ const nbFieldsInBase: number = baseStructureDefinition ? baseStructureDefinition.fields?.length || 0 : 0;
863
+
864
+ for (let index = nbFieldsInBase; index < fields.length; index++) {
865
+ const defItem = fields[index];
866
+ xw.startElement("Field");
867
+ xw.writeAttribute("Name", defItem.name as string);
868
+
869
+ if (defItem.arrayDimensions) {
870
+ xw.writeAttribute("ArrayDimensions", defItem.arrayDimensions.map((x) => x.toString()).join(","));
871
+ }
872
+ if (defItem.valueRank !== undefined && defItem.valueRank !== -1) {
873
+ xw.writeAttribute("ValueRank", defItem.valueRank);
874
+ }
875
+ if (defItem.isOptional /* && defItem.isOptional !== false */) {
876
+ xw.writeAttribute("IsOptional", defItem.isOptional.toString());
877
+ }
878
+ if (defItem.maxStringLength !== undefined && defItem.maxStringLength !== 0) {
879
+ xw.writeAttribute("MaxStringLength", defItem.maxStringLength);
880
+ }
881
+ // todo : SymbolicName ( see AutoId )
882
+
883
+ if (defItem.dataType) {
884
+ // todo : namespace translation !
885
+ xw.writeAttribute("DataType", n(xw, defItem.dataType));
886
+ }
887
+ _dumpDescription(xw, defItem);
888
+ xw.endElement();
889
+ }
890
+ }
891
+
892
+ function _dumpUADataTypeDefinition(xw: XmlWriter, uaDataType: UADataType) {
893
+ const uaDataTypeBase = uaDataType.subtypeOfObj;
894
+
895
+ if (uaDataType.isEnumeration()) {
896
+ xw.startElement("Definition");
897
+ xw.writeAttribute("Name", b(xw, uaDataType.browseName));
898
+ _dumpEnumDefinition(xw, uaDataType.getEnumDefinition());
899
+ xw.endElement();
900
+ return;
901
+ }
902
+
903
+ if (uaDataType.isStructure()) {
904
+ // in case the namespace is conforming to 1.03 specification the DataTypeDefinition attribute
905
+ // will be not be readable....
906
+
907
+ const dataValue = uaDataType.readAttribute(SessionContext.defaultContext, AttributeIds.DataTypeDefinition);
908
+
909
+ const t = true;
910
+ if (t || dataValue.statusCode.isGood()) {
911
+ const definition = uaDataType.getStructureDefinition();
912
+ const baseDefinition = uaDataTypeBase ? uaDataTypeBase.getStructureDefinition() : null;
913
+ xw.startElement("Definition");
914
+ xw.writeAttribute("Name", b(xw, uaDataType.browseName));
915
+ if (definition.structureType === StructureType.Union) {
916
+ xw.writeAttribute("IsUnion", "true");
917
+ }
918
+ _dumpStructureDefinition(xw, definition, baseDefinition);
919
+ xw.endElement();
920
+ }
921
+ return;
922
+ }
923
+ }
924
+
925
+ function dumpUAView(xw: XmlWriter, node: UAView) {
926
+ _markAsVisited(xw, node);
927
+
928
+ xw.startElement("UAView");
929
+ xw.writeAttribute("NodeId", n(xw, node.nodeId));
930
+ xw.writeAttribute("BrowseName", b(xw, node.browseName));
931
+
932
+ dumpCommonElements(xw, node);
933
+
934
+ xw.endElement();
935
+ }
936
+
937
+ function dumpUADataType(xw: XmlWriter, node: UADataType) {
938
+ _markAsVisited(xw, node);
939
+
940
+ xw.startElement("UADataType");
941
+ xw.writeAttribute("NodeId", n(xw, node.nodeId));
942
+ xw.writeAttribute("BrowseName", b(xw, node.browseName));
943
+ if (node.symbolicName !== node.browseName.name) {
944
+ xw.writeAttribute("SymbolicName", node.symbolicName);
945
+ }
946
+ if (node.isAbstract) {
947
+ xw.writeAttribute("IsAbstract", node.isAbstract ? "true" : "false");
948
+ }
949
+
950
+ dumpCommonElements(xw, node);
951
+
952
+ _dumpUADataTypeDefinition(xw, node);
953
+
954
+ xw.endElement();
955
+ }
956
+
957
+ function _markAsVisited(xw: XmlWriter, node: BaseNode) {
958
+ xw.visitedNode = xw.visitedNode || new Set();
959
+ assert(!xw.visitedNode.has(_hash(node)));
960
+ xw.visitedNode.add(_hash(node));
961
+ }
962
+
963
+ function dumpUAVariable(xw: XmlWriter, node: UAVariable) {
964
+ assert(node.nodeClass === NodeClass.Variable);
965
+ if (xw.visitedNode.has(_hash(node))) {
966
+ return;
967
+ }
968
+ _markAsVisited(xw, node);
969
+
970
+ const addressSpace = node.addressSpace;
971
+
972
+ xw.startElement("UAVariable");
973
+ {
974
+ // attributes
975
+ dumpCommonAttributes(xw, node);
976
+
977
+ if (node.valueRank !== -1) {
978
+ // -1 = Scalar
979
+ xw.writeAttribute("ValueRank", node.valueRank);
980
+ }
981
+
982
+ _dumpArrayDimensionsAttribute(xw, node);
983
+
984
+ const dataTypeNode = addressSpace.findNode(node.dataType);
985
+ if (dataTypeNode) {
986
+ // verify that data Type is in alias
987
+ // xx const dataTypeName = dataTypeNode.browseName.toString();
988
+ const dataTypeName = b(xw, resolveDataTypeName(addressSpace, dataTypeNode.nodeId));
989
+ xw.writeAttribute("DataType", dataTypeName);
990
+ }
991
+ }
992
+ {
993
+ // sub elements
994
+ dumpCommonElements(xw, node);
995
+
996
+ const value = (node as UAVariableImpl).$dataValue.value;
997
+ if (value) {
998
+ _dumpValue(xw, node, value);
999
+ }
1000
+ }
1001
+ xw.endElement();
1002
+ }
1003
+
1004
+ function dumpUAVariableType(xw: XmlWriter, node: UAVariableType) {
1005
+ assert(node.nodeClass === NodeClass.VariableType);
1006
+ xw.visitedNode = xw.visitedNode || new Set();
1007
+ assert(!xw.visitedNode.has(_hash(node)));
1008
+ xw.visitedNode.add(_hash(node));
1009
+
1010
+ const addressSpace = node.addressSpace;
1011
+
1012
+ xw.startElement("UAVariableType");
1013
+
1014
+ {
1015
+ // attributes
1016
+ dumpCommonAttributes(xw, node);
1017
+
1018
+ if (node.valueRank !== -1) {
1019
+ xw.writeAttribute("ValueRank", node.valueRank);
1020
+ }
1021
+ const dataTypeNode = addressSpace.findNode(node.dataType);
1022
+ if (!dataTypeNode) {
1023
+ // throw new Error(" cannot find datatype " + node.dataType);
1024
+ // c8 ignore next
1025
+ doDebug &&
1026
+ debugLog(
1027
+ " cannot find datatype " +
1028
+ node.dataType +
1029
+ " for node " +
1030
+ node.browseName.toString() +
1031
+ " id =" +
1032
+ node.nodeId.toString()
1033
+ );
1034
+ } else {
1035
+ const dataTypeName = b(xw, resolveDataTypeName(addressSpace, dataTypeNode.nodeId));
1036
+ xw.writeAttribute("DataType", dataTypeName);
1037
+ }
1038
+ }
1039
+ {
1040
+ _dumpArrayDimensionsAttribute(xw, node);
1041
+
1042
+ // sub elements
1043
+ dumpCommonElements(xw, node);
1044
+
1045
+ const value = (node as UAVariableTypeImpl).value as Variant;
1046
+ if (value) {
1047
+ _dumpValue(xw, node, value);
1048
+ }
1049
+ }
1050
+
1051
+ xw.endElement();
1052
+ }
1053
+
1054
+ function _dumpUAObject(xw: XmlWriter, node: UAObject) {
1055
+ assert(node.nodeClass === NodeClass.Object);
1056
+ xw.visitedNode = xw.visitedNode || new Set();
1057
+ assert(!xw.visitedNode.has(_hash(node)));
1058
+ xw.visitedNode.add(_hash(node));
1059
+
1060
+ // dump SubTypeOf and HasTypeDefinition
1061
+
1062
+ xw.startElement("UAObject");
1063
+ dumpCommonAttributes(xw, node);
1064
+ dumpCommonElements(xw, node);
1065
+ xw.endElement();
1066
+
1067
+ // dump aggregates nodes ( Properties / components )
1068
+ }
1069
+
1070
+ function dumpUAObjectType(xw: XmlWriter, node: UAObjectTypeImpl) {
1071
+ assert(node.nodeClass === NodeClass.ObjectType);
1072
+ assert(node instanceof UAObjectTypeImpl);
1073
+ _markAsVisited(xw, node);
1074
+
1075
+ // dump SubtypeOf and HasTypeDefinition node if part of the same namespace
1076
+
1077
+ xw.startElement("UAObjectType");
1078
+ dumpCommonAttributes(xw, node);
1079
+ dumpCommonElements(xw, node);
1080
+ xw.endElement();
1081
+ }
1082
+
1083
+ function dumpUAMethod(xw: XmlWriter, node: UAMethod) {
1084
+ assert(node.nodeClass === NodeClass.Method);
1085
+ _markAsVisited(xw, node);
1086
+
1087
+ xw.startElement("UAMethod");
1088
+ dumpCommonAttributes(xw, node);
1089
+ if (node.methodDeclarationId) {
1090
+ xw.writeAttribute("MethodDeclarationId", n(xw, node.methodDeclarationId));
1091
+ }
1092
+ dumpCommonElements(xw, node);
1093
+ xw.endElement();
1094
+ }
1095
+ function resolveDataTypeName(addressSpace: IAddressSpace, dataType: string | NodeId): QualifiedName {
1096
+ let dataTypeNode = null;
1097
+ // c8 ignore next
1098
+ if (typeof dataType === "string") {
1099
+ dataTypeNode = addressSpace.findDataType(dataType);
1100
+ } else {
1101
+ assert(dataType instanceof NodeId);
1102
+ const o = addressSpace.findNode(dataType.toString());
1103
+ dataTypeNode = o ? o : null;
1104
+ }
1105
+ if (!dataTypeNode) {
1106
+ errorLog(`resolveDataTypeName: warning cannot find DataType ${dataType.toString()}`);
1107
+ return new QualifiedName({ name: "", namespaceIndex: 0 });
1108
+ }
1109
+ return dataTypeNode.browseName;
1110
+ }
1111
+
1112
+ function writeAliases(xw: XmlWriter, aliases: Record<string, NodeIdString>) {
1113
+ xw.startElement("Aliases");
1114
+
1115
+ if (aliases) {
1116
+ const keys = Object.keys(aliases).sort();
1117
+ for (const key of keys) {
1118
+ xw.startElement("Alias");
1119
+ xw.writeAttribute("Alias", key);
1120
+ xw.text(aliases[key].toString().replace(/ns=0;/, ""));
1121
+ xw.endElement();
1122
+ }
1123
+ }
1124
+ xw.endElement();
1125
+ }
1126
+
1127
+ function dumpReferenceType(xw: XmlWriter, referenceType: UAReferenceType) {
1128
+ _markAsVisited(xw, referenceType);
1129
+
1130
+ xw.startElement("UAReferenceType");
1131
+
1132
+ dumpCommonAttributes(xw, referenceType);
1133
+
1134
+ const isSymmetric = !referenceType.inverseName || referenceType.inverseName?.text === referenceType.browseName?.name;
1135
+ if (isSymmetric) {
1136
+ xw.writeAttribute("Symmetric", "true");
1137
+ }
1138
+
1139
+ dumpCommonElements(xw, referenceType);
1140
+
1141
+ if (!isSymmetric) {
1142
+ xw.startElement("InverseName");
1143
+ xw.text(referenceType.inverseName?.text || "");
1144
+ xw.endElement();
1145
+ }
1146
+
1147
+ xw.endElement();
1148
+ }
1149
+
1150
+ export function sortByBrowseName(x: BaseNode, y: BaseNode): number {
1151
+ const x_str = x.browseName.toString();
1152
+ const y_str = y.browseName.toString();
1153
+ if (x_str > y_str) {
1154
+ return -1;
1155
+ } else if (x_str < y_str) {
1156
+ return 1;
1157
+ }
1158
+ return 0;
1159
+ }
1160
+
1161
+ type NodeIdString = string;
1162
+
1163
+ export type DumpXMLOptions = Record<string, never>;
1164
+
1165
+ /** the element of one node, and nothing else: the walk decides what comes before and after it */
1166
+ function dumpElement(xw: XmlWriter, node: BaseNode): void {
1167
+ switch (node.nodeClass) {
1168
+ case NodeClass.Method:
1169
+ dumpUAMethod(xw, node as UAMethod);
1170
+ break;
1171
+ case NodeClass.Object:
1172
+ _dumpUAObject(xw, node as UAObject);
1173
+ break;
1174
+ case NodeClass.Variable:
1175
+ dumpUAVariable(xw, node as UAVariable);
1176
+ break;
1177
+ case NodeClass.VariableType:
1178
+ dumpUAVariableType(xw, node as UAVariableType);
1179
+ break;
1180
+ case NodeClass.ReferenceType:
1181
+ dumpReferenceType(xw, node as UAReferenceType);
1182
+ break;
1183
+ case NodeClass.ObjectType:
1184
+ dumpUAObjectType(xw, node as UAObjectTypeImpl);
1185
+ break;
1186
+ case NodeClass.DataType:
1187
+ dumpUADataType(xw, node as UADataType);
1188
+ break;
1189
+ case NodeClass.View:
1190
+ dumpUAView(xw, node as UAView);
1191
+ break;
1192
+ default:
1193
+ throw new Error(`dumpElement: unexpected node class ${node.nodeClass}`);
1194
+ }
1195
+ }
1196
+
1197
+ /** the walk's events written as XML: comments, and each node's element looked up back in the address space */
1198
+ function writeWalkEvents(
1199
+ xw: XmlWriter,
1200
+ addressSpace: IAddressSpace,
1201
+ translationTable: Map<number, number>,
1202
+ events: NodesetWalkEvent[]
1203
+ ): void {
1204
+ const reverse = new Map<number, number>();
1205
+ for (const [index, translated] of translationTable) {
1206
+ reverse.set(translated, index);
1207
+ }
1208
+ xw.visitedNode = xw.visitedNode || new Set();
1209
+ for (const event of events) {
1210
+ if (event.kind === "section") {
1211
+ xw.writeComment(event.text);
1212
+ continue;
1213
+ }
1214
+ if (event.kind !== "node") {
1215
+ continue;
1216
+ }
1217
+ const namespace = reverse.get(event.nodeId.namespace);
1218
+ if (namespace === undefined) {
1219
+ throw new Error(`toNodeset2XML: no namespace for ${event.nodeId.toString()}`);
1220
+ }
1221
+ const node = addressSpace.findNode(new NodeId(event.nodeId.identifierType, event.nodeId.value, namespace));
1222
+ if (!node) {
1223
+ throw new Error(`toNodeset2XML: cannot find ${event.nodeId.toString()} (namespace ${namespace})`);
1224
+ }
1225
+ dumpElement(xw, node);
1226
+ }
1227
+ }
1228
+
1229
+ /**
1230
+ * one node as XML, with what the export brings with it: its type definition and supertype when they
1231
+ * belong to the same namespace, its aggregates after it. The same walk toNodeset2XML runs, from this node.
1232
+ */
1233
+ BaseNodeImpl.prototype.dumpXML = function (this: BaseNodeImpl, xw: XmlWriter) {
1234
+ const { events, translationTable } = nodeToWalkEvents(this);
1235
+ xw.translationTable = xw.translationTable || translationTable;
1236
+ writeWalkEvents(xw, this.addressSpace, translationTable, events);
1237
+ };
1238
+
1239
+ export function makeTypeXsd(namespaceUri: string): string {
1240
+ return `${namespaceUri.replace(/\/$/, "")}/Type.xsd`;
1241
+ }
1242
+
1243
+ NamespaceImpl.prototype.toNodeset2XML = function (this: NamespaceImpl) {
1244
+ const namespaceArrayNode = this.addressSpace.findNode(VariableIds.Server_NamespaceArray);
1245
+ const namespaceArray: string[] = namespaceArrayNode
1246
+ ? namespaceArrayNode.readAttribute(null, AttributeIds.Value).value.value
1247
+ : [];
1248
+
1249
+ const xw: XmlWriter = new XMLWriter(true);
1250
+
1251
+ xw.priorityTable = constructNamespacePriorityTable(this.addressSpace).priorityTable;
1252
+
1253
+ const dependency = constructNamespaceDependency(this, xw.priorityTable);
1254
+ const translationTable = _constructNamespaceTranslationTable(dependency, this);
1255
+ xw.translationTable = translationTable;
1256
+ // the walk: the same records the image writer and the loader consume, plus the comments
1257
+ const events = namespaceToWalkEvents(this);
1258
+ const header = events[0];
1259
+ if (header?.kind !== "header") {
1260
+ throw new Error("toNodeset2XML: the walk must start with the header record");
1261
+ }
1262
+
1263
+ xw.startDocument({ encoding: "utf-8", version: "1.0" });
1264
+ xw.startElement("UANodeSet");
1265
+
1266
+ xw.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
1267
+ xw.writeAttribute("xmlns:uax", "http://opcfoundation.org/UA/2008/02/Types.xsd");
1268
+ xw.writeAttribute("xmlns", "http://opcfoundation.org/UA/2011/03/UANodeSet.xsd");
1269
+
1270
+ const namespacesMap: Record<string, string> = {
1271
+ "http://opcfoundation.org/UA/2011/03/UANodeSet.xsd": "",
1272
+ "http://opcfoundation.org/UA/2008/02/Types.xsd": "uax",
1273
+ "http://www.w3.org/2001/XMLSchema-instance": "xsi"
1274
+ };
1275
+
1276
+ for (const namespace of dependency) {
1277
+ if (namespace.index === 0) {
1278
+ continue;
1279
+ }
1280
+ const translatedIndex = translationTable.get(namespace.index);
1281
+
1282
+ const smallName = `ns${translatedIndex}`;
1283
+ xw.writeAttribute(`xmlns:${smallName}`, makeTypeXsd(namespace.namespaceUri));
1284
+ namespacesMap[namespace.namespaceUri] = smallName;
1285
+ }
1286
+
1287
+ initXmlWriterEx(xw, namespacesMap, namespaceArray);
1288
+
1289
+ xw.startElement("NamespaceUris");
1290
+ for (const namespaceUri of header.namespaceUris) {
1291
+ xw.startElement("Uri");
1292
+ xw.text(namespaceUri);
1293
+ xw.endElement();
1294
+ }
1295
+ xw.endElement();
1296
+
1297
+ xw.startElement("Models");
1298
+ for (const model of header.models) {
1299
+ xw.startElement("Model");
1300
+ xw.writeAttribute("ModelUri", model.modelUri);
1301
+ xw.writeAttribute("Version", model.version);
1302
+ xw.writeAttribute("PublicationDate", (model.publicationDate ?? this.publicationDate).toISOString());
1303
+ for (const required of model.requiredModels) {
1304
+ xw.startElement("RequiredModel");
1305
+ xw.writeAttribute("ModelUri", required.modelUri);
1306
+ xw.writeAttribute("Version", required.version);
1307
+ xw.writeAttribute("PublicationDate", required.publicationDate.toISOString());
1308
+ xw.endElement();
1309
+ }
1310
+ xw.endElement();
1311
+ }
1312
+ xw.endElement();
1313
+
1314
+ const aliases: Record<string, NodeIdString> = {};
1315
+ for (const [name, nodeId] of Object.entries(header.aliases)) {
1316
+ aliases[name] = nodeId.toString().replace("ns=0;", "");
1317
+ }
1318
+ writeAliases(xw, aliases);
1319
+
1320
+ xw.visitedNode = new Set();
1321
+ writeWalkEvents(xw, this.addressSpace, translationTable, events.slice(1));
1322
+
1323
+ xw.endElement();
1324
+ xw.endDocument();
1325
+ return xw.toString();
1326
+ };