node-opcua-address-space 2.98.0 → 2.98.2

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 (460) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -0
  2. package/dist/source/address_space_ts.js +18 -0
  3. package/dist/source/address_space_ts.js.map +1 -0
  4. package/dist/source/continuation_points/continuation_point_manager.d.ts +91 -0
  5. package/dist/source/continuation_points/continuation_point_manager.js +201 -0
  6. package/dist/source/continuation_points/continuation_point_manager.js.map +1 -0
  7. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -0
  8. package/dist/source/helpers/adjust_browse_direction.js +12 -0
  9. package/dist/source/helpers/adjust_browse_direction.js.map +1 -0
  10. package/dist/source/helpers/argument_list.d.ts +33 -0
  11. package/dist/source/helpers/argument_list.js +255 -0
  12. package/dist/source/helpers/argument_list.js.map +1 -0
  13. package/dist/source/helpers/call_helpers.d.ts +6 -0
  14. package/dist/source/helpers/call_helpers.js +72 -0
  15. package/dist/source/helpers/call_helpers.js.map +1 -0
  16. package/dist/source/helpers/coerce_enum_value.d.ts +6 -0
  17. package/dist/source/helpers/coerce_enum_value.js +34 -0
  18. package/dist/source/helpers/coerce_enum_value.js.map +1 -0
  19. package/dist/source/helpers/dump_tools.d.ts +14 -0
  20. package/dist/source/helpers/dump_tools.js +79 -0
  21. package/dist/source/helpers/dump_tools.js.map +1 -0
  22. package/dist/source/helpers/ensure_secure_access.d.ts +9 -0
  23. package/dist/source/helpers/ensure_secure_access.js +77 -0
  24. package/dist/source/helpers/ensure_secure_access.js.map +1 -0
  25. package/dist/source/helpers/make_optionals_map.d.ts +21 -0
  26. package/dist/source/helpers/make_optionals_map.js +30 -0
  27. package/dist/source/helpers/make_optionals_map.js.map +1 -0
  28. package/dist/source/helpers/multiform_func.d.ts +11 -0
  29. package/dist/source/helpers/multiform_func.js +76 -0
  30. package/dist/source/helpers/multiform_func.js.map +1 -0
  31. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -0
  32. package/dist/source/helpers/resolve_opaque_on_address_space.js +37 -0
  33. package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -0
  34. package/dist/source/index.d.ts +61 -0
  35. package/dist/source/index.js +90 -0
  36. package/dist/source/index.js.map +1 -0
  37. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -0
  38. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +3 -0
  39. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -0
  40. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -0
  41. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +3 -0
  42. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js.map +1 -0
  43. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -0
  44. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +3 -0
  45. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js.map +1 -0
  46. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -0
  47. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +3 -0
  48. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js.map +1 -0
  49. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -0
  50. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +3 -0
  51. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js.map +1 -0
  52. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -0
  53. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +3 -0
  54. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js.map +1 -0
  55. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -0
  56. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +3 -0
  57. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +1 -0
  58. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -0
  59. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +3 -0
  60. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js.map +1 -0
  61. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -0
  62. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +3 -0
  63. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js.map +1 -0
  64. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -0
  65. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +3 -0
  66. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +1 -0
  67. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -0
  68. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +3 -0
  69. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +1 -0
  70. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -0
  71. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +3 -0
  72. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js.map +1 -0
  73. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -0
  74. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +3 -0
  75. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js.map +1 -0
  76. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -0
  77. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +3 -0
  78. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js.map +1 -0
  79. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -0
  80. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +3 -0
  81. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js.map +1 -0
  82. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -0
  83. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +3 -0
  84. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js.map +1 -0
  85. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -0
  86. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +26 -0
  87. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -0
  88. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -0
  89. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +3 -0
  90. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js.map +1 -0
  91. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -0
  92. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +3 -0
  93. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js.map +1 -0
  94. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -0
  95. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +3 -0
  96. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js.map +1 -0
  97. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -0
  98. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +3 -0
  99. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js.map +1 -0
  100. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -0
  101. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +3 -0
  102. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js.map +1 -0
  103. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -0
  104. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +3 -0
  105. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js.map +1 -0
  106. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -0
  107. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +3 -0
  108. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +1 -0
  109. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -0
  110. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +3 -0
  111. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js.map +1 -0
  112. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -0
  113. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +3 -0
  114. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js.map +1 -0
  115. package/dist/source/interfaces/extension_object_constructor.d.ts +10 -0
  116. package/dist/source/interfaces/extension_object_constructor.js +3 -0
  117. package/dist/source/interfaces/extension_object_constructor.js.map +1 -0
  118. package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -0
  119. package/dist/source/interfaces/nodeset_loader_options.js +3 -0
  120. package/dist/source/interfaces/nodeset_loader_options.js.map +1 -0
  121. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -0
  122. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +3 -0
  123. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +1 -0
  124. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -0
  125. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +3 -0
  126. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js.map +1 -0
  127. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -0
  128. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +3 -0
  129. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js.map +1 -0
  130. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -0
  131. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +3 -0
  132. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js.map +1 -0
  133. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -0
  134. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +3 -0
  135. package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +1 -0
  136. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -0
  137. package/dist/source/interfaces/state_machine/ua_transition_ex.js +3 -0
  138. package/dist/source/interfaces/state_machine/ua_transition_ex.js.map +1 -0
  139. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -0
  140. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +3 -0
  141. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -0
  142. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -0
  143. package/dist/source/loader/decode_xml_extension_object.js +72 -0
  144. package/dist/source/loader/decode_xml_extension_object.js.map +1 -0
  145. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -0
  146. package/dist/source/loader/ensure_datatype_extracted.js +71 -0
  147. package/dist/source/loader/ensure_datatype_extracted.js.map +1 -0
  148. package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -0
  149. package/dist/source/loader/generateAddressSpaceRaw.js +46 -0
  150. package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -0
  151. package/dist/source/loader/load_nodeset2.d.ts +17 -0
  152. package/dist/source/loader/load_nodeset2.js +1484 -0
  153. package/dist/source/loader/load_nodeset2.js.map +1 -0
  154. package/dist/source/loader/make_semver_compatible.d.ts +6 -0
  155. package/dist/source/loader/make_semver_compatible.js +26 -0
  156. package/dist/source/loader/make_semver_compatible.js.map +1 -0
  157. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -0
  158. package/dist/source/loader/make_xml_extension_object_parser.js +327 -0
  159. package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -0
  160. package/dist/source/loader/namespace_post_step.d.ts +10 -0
  161. package/dist/source/loader/namespace_post_step.js +62 -0
  162. package/dist/source/loader/namespace_post_step.js.map +1 -0
  163. package/dist/source/loader/register_node_promoter.d.ts +2 -0
  164. package/dist/source/loader/register_node_promoter.js +10 -0
  165. package/dist/source/loader/register_node_promoter.js.map +1 -0
  166. package/dist/source/namespace.d.ts +6 -0
  167. package/dist/source/namespace.js +3 -0
  168. package/dist/source/namespace.js.map +1 -0
  169. package/dist/source/namespace_alarm_and_condition.d.ts +32 -0
  170. package/dist/source/namespace_alarm_and_condition.js +3 -0
  171. package/dist/source/namespace_alarm_and_condition.js.map +1 -0
  172. package/dist/source/namespace_data_access.d.ts +42 -0
  173. package/dist/source/namespace_data_access.js +3 -0
  174. package/dist/source/namespace_data_access.js.map +1 -0
  175. package/dist/source/namespace_machine_state.d.ts +8 -0
  176. package/dist/source/namespace_machine_state.js +3 -0
  177. package/dist/source/namespace_machine_state.js.map +1 -0
  178. package/dist/source/pseudo_session.d.ts +72 -0
  179. package/dist/source/pseudo_session.js +255 -0
  180. package/dist/source/pseudo_session.js.map +1 -0
  181. package/dist/source/session_context.d.ts +111 -0
  182. package/dist/source/session_context.js +265 -0
  183. package/dist/source/session_context.js.map +1 -0
  184. package/dist/source/set_namespace_meta_data.d.ts +2 -0
  185. package/dist/source/set_namespace_meta_data.js +60 -0
  186. package/dist/source/set_namespace_meta_data.js.map +1 -0
  187. package/dist/source/ua_root_folder.d.ts +9 -0
  188. package/dist/source/ua_root_folder.js +3 -0
  189. package/dist/source/ua_root_folder.js.map +1 -0
  190. package/dist/source/ua_two_state_variable_ex.d.ts +23 -0
  191. package/dist/source/ua_two_state_variable_ex.js +3 -0
  192. package/dist/source/ua_two_state_variable_ex.js.map +1 -0
  193. package/dist/source/xml_writer.d.ts +18 -0
  194. package/dist/source/xml_writer.js +3 -0
  195. package/dist/source/xml_writer.js.map +1 -0
  196. package/dist/src/address_space.d.ts +387 -0
  197. package/dist/src/address_space.js +1386 -0
  198. package/dist/src/address_space.js.map +1 -0
  199. package/dist/src/address_space_change_event_tools.d.ts +6 -0
  200. package/dist/src/address_space_change_event_tools.js +153 -0
  201. package/dist/src/address_space_change_event_tools.js.map +1 -0
  202. package/dist/src/address_space_private.d.ts +43 -0
  203. package/dist/src/address_space_private.js +3 -0
  204. package/dist/src/address_space_private.js.map +1 -0
  205. package/dist/src/alarms_and_conditions/condition.d.ts +5 -0
  206. package/dist/src/alarms_and_conditions/condition.js +79 -0
  207. package/dist/src/alarms_and_conditions/condition.js.map +1 -0
  208. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -0
  209. package/dist/src/alarms_and_conditions/condition_info_impl.js +55 -0
  210. package/dist/src/alarms_and_conditions/condition_info_impl.js.map +1 -0
  211. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -0
  212. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +658 -0
  213. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -0
  214. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -0
  215. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -0
  216. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -0
  217. package/dist/src/alarms_and_conditions/index.d.ts +16 -0
  218. package/dist/src/alarms_and_conditions/index.js +33 -0
  219. package/dist/src/alarms_and_conditions/index.js.map +1 -0
  220. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -0
  221. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +245 -0
  222. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -0
  223. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -0
  224. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -0
  225. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -0
  226. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -0
  227. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +39 -0
  228. package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -0
  229. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -0
  230. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +184 -0
  231. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -0
  232. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -0
  233. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1029 -0
  234. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -0
  235. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -0
  236. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +35 -0
  237. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -0
  238. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -0
  239. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +57 -0
  240. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -0
  241. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -0
  242. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +12 -0
  243. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -0
  244. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -0
  245. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +87 -0
  246. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -0
  247. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -0
  248. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +8 -0
  249. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -0
  250. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -0
  251. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +251 -0
  252. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -0
  253. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -0
  254. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +51 -0
  255. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -0
  256. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -0
  257. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +163 -0
  258. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -0
  259. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -0
  260. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -0
  261. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -0
  262. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -0
  263. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +18 -0
  264. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -0
  265. package/dist/src/apply_condition_refresh.d.ts +6 -0
  266. package/dist/src/apply_condition_refresh.js +28 -0
  267. package/dist/src/apply_condition_refresh.js.map +1 -0
  268. package/dist/src/base_node_impl.d.ts +284 -0
  269. package/dist/src/base_node_impl.js +1455 -0
  270. package/dist/src/base_node_impl.js.map +1 -0
  271. package/dist/src/base_node_private.d.ts +81 -0
  272. package/dist/src/base_node_private.js +833 -0
  273. package/dist/src/base_node_private.js.map +1 -0
  274. package/dist/src/check_value_rank_compatibility.d.ts +15 -0
  275. package/dist/src/check_value_rank_compatibility.js +82 -0
  276. package/dist/src/check_value_rank_compatibility.js.map +1 -0
  277. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -0
  278. package/dist/src/data_access/add_dataItem_stuff.js +62 -0
  279. package/dist/src/data_access/add_dataItem_stuff.js.map +1 -0
  280. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -0
  281. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +35 -0
  282. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js.map +1 -0
  283. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -0
  284. package/dist/src/data_access/ua_multistate_discrete_impl.js +131 -0
  285. package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -0
  286. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -0
  287. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +254 -0
  288. package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +1 -0
  289. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -0
  290. package/dist/src/data_access/ua_two_state_discrete_impl.js +156 -0
  291. package/dist/src/data_access/ua_two_state_discrete_impl.js.map +1 -0
  292. package/dist/src/event_data.d.ts +34 -0
  293. package/dist/src/event_data.js +65 -0
  294. package/dist/src/event_data.js.map +1 -0
  295. package/dist/src/extension_object_array_node.d.ts +23 -0
  296. package/dist/src/extension_object_array_node.js +249 -0
  297. package/dist/src/extension_object_array_node.js.map +1 -0
  298. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -0
  299. package/dist/src/historical_access/address_space_historical_data_node.js +653 -0
  300. package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -0
  301. package/dist/src/idx_iterator.d.ts +8 -0
  302. package/dist/src/idx_iterator.js +51 -0
  303. package/dist/src/idx_iterator.js.map +1 -0
  304. package/dist/src/index_current.d.ts +46 -0
  305. package/dist/src/index_current.js +78 -0
  306. package/dist/src/index_current.js.map +1 -0
  307. package/dist/src/namespace_impl.d.ts +456 -0
  308. package/dist/src/namespace_impl.js +1763 -0
  309. package/dist/src/namespace_impl.js.map +1 -0
  310. package/dist/src/namespace_private.d.ts +23 -0
  311. package/dist/src/namespace_private.js +33 -0
  312. package/dist/src/namespace_private.js.map +1 -0
  313. package/dist/src/nodeid_manager.d.ts +37 -0
  314. package/dist/src/nodeid_manager.js +184 -0
  315. package/dist/src/nodeid_manager.js.map +1 -0
  316. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -0
  317. package/dist/src/nodeset_tools/adjust_namespace_array.js +14 -0
  318. package/dist/src/nodeset_tools/adjust_namespace_array.js.map +1 -0
  319. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -0
  320. package/dist/src/nodeset_tools/construct_namespace_dependency.js +141 -0
  321. package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -0
  322. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -0
  323. package/dist/src/nodeset_tools/dump_to_bsd.js +165 -0
  324. package/dist/src/nodeset_tools/dump_to_bsd.js.map +1 -0
  325. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -0
  326. package/dist/src/nodeset_tools/nodeset_to_xml.js +1288 -0
  327. package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -0
  328. package/dist/src/private_namespace.d.ts +5 -0
  329. package/dist/src/private_namespace.js +20 -0
  330. package/dist/src/private_namespace.js.map +1 -0
  331. package/dist/src/reference_impl.d.ts +43 -0
  332. package/dist/src/reference_impl.js +140 -0
  333. package/dist/src/reference_impl.js.map +1 -0
  334. package/dist/src/role_permissions.d.ts +2 -0
  335. package/dist/src/role_permissions.js +11 -0
  336. package/dist/src/role_permissions.js.map +1 -0
  337. package/dist/src/state_machine/finite_state_machine.d.ts +81 -0
  338. package/dist/src/state_machine/finite_state_machine.js +389 -0
  339. package/dist/src/state_machine/finite_state_machine.js.map +1 -0
  340. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -0
  341. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +251 -0
  342. package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -0
  343. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -0
  344. package/dist/src/state_machine/ua_two_state_variable.js +332 -0
  345. package/dist/src/state_machine/ua_two_state_variable.js.map +1 -0
  346. package/dist/src/tool_isSubtypeOf.d.ts +18 -0
  347. package/dist/src/tool_isSubtypeOf.js +125 -0
  348. package/dist/src/tool_isSubtypeOf.js.map +1 -0
  349. package/dist/src/ua_condition_type.d.ts +8 -0
  350. package/dist/src/ua_condition_type.js +3 -0
  351. package/dist/src/ua_condition_type.js.map +1 -0
  352. package/dist/src/ua_data_type_impl.d.ts +89 -0
  353. package/dist/src/ua_data_type_impl.js +369 -0
  354. package/dist/src/ua_data_type_impl.js.map +1 -0
  355. package/dist/src/ua_method_impl.d.ts +42 -0
  356. package/dist/src/ua_method_impl.js +218 -0
  357. package/dist/src/ua_method_impl.js.map +1 -0
  358. package/dist/src/ua_object_impl.d.ts +35 -0
  359. package/dist/src/ua_object_impl.js +169 -0
  360. package/dist/src/ua_object_impl.js.map +1 -0
  361. package/dist/src/ua_object_type_impl.d.ts +50 -0
  362. package/dist/src/ua_object_type_impl.js +127 -0
  363. package/dist/src/ua_object_type_impl.js.map +1 -0
  364. package/dist/src/ua_reference_type_impl.d.ts +45 -0
  365. package/dist/src/ua_reference_type_impl.js +142 -0
  366. package/dist/src/ua_reference_type_impl.js.map +1 -0
  367. package/dist/src/ua_variable_impl.d.ts +380 -0
  368. package/dist/src/ua_variable_impl.js +1739 -0
  369. package/dist/src/ua_variable_impl.js.map +1 -0
  370. package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -0
  371. package/dist/src/ua_variable_impl_ext_obj.js +671 -0
  372. package/dist/src/ua_variable_impl_ext_obj.js.map +1 -0
  373. package/dist/src/ua_variable_type_impl.d.ts +74 -0
  374. package/dist/src/ua_variable_type_impl.js +598 -0
  375. package/dist/src/ua_variable_type_impl.js.map +1 -0
  376. package/dist/src/ua_view_impl.d.ts +19 -0
  377. package/dist/src/ua_view_impl.js +44 -0
  378. package/dist/src/ua_view_impl.js.map +1 -0
  379. package/dist/tsconfig_common.tsbuildinfo +1 -0
  380. package/distHelpers/add_event_generator_object.d.ts +3 -0
  381. package/{test_helpers/add_event_generator_object.ts → distHelpers/add_event_generator_object.js} +16 -22
  382. package/distHelpers/add_event_generator_object.js.map +1 -0
  383. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -0
  384. package/{test_helpers/alarms_and_conditions_demo.ts → distHelpers/alarms_and_conditions_demo.js} +21 -56
  385. package/distHelpers/alarms_and_conditions_demo.js.map +1 -0
  386. package/distHelpers/assertHasMatchingReference.d.ts +19 -0
  387. package/{test_helpers/assertHasMatchingReference.ts → distHelpers/assertHasMatchingReference.js} +12 -14
  388. package/distHelpers/assertHasMatchingReference.js.map +1 -0
  389. package/distHelpers/boiler_system.d.ts +113 -0
  390. package/{test_helpers/boiler_system.ts → distHelpers/boiler_system.js} +81 -295
  391. package/distHelpers/boiler_system.js.map +1 -0
  392. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -0
  393. package/{test_helpers/create_minimalist_address_space_nodeset.ts → distHelpers/create_minimalist_address_space_nodeset.js} +51 -87
  394. package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -0
  395. package/distHelpers/date_utils.d.ts +3 -0
  396. package/distHelpers/date_utils.js +10 -0
  397. package/distHelpers/date_utils.js.map +1 -0
  398. package/distHelpers/dump_statemachine.d.ts +0 -0
  399. package/distHelpers/dump_statemachine.js +128 -0
  400. package/distHelpers/dump_statemachine.js.map +1 -0
  401. package/distHelpers/get_address_space_fixture.d.ts +1 -0
  402. package/{test_helpers/get_address_space_fixture.ts → distHelpers/get_address_space_fixture.js} +8 -7
  403. package/distHelpers/get_address_space_fixture.js.map +1 -0
  404. package/distHelpers/get_mini_address_space.d.ts +7 -0
  405. package/distHelpers/get_mini_address_space.js +37 -0
  406. package/distHelpers/get_mini_address_space.js.map +1 -0
  407. package/distHelpers/index.js +29 -0
  408. package/distHelpers/index.js.map +1 -0
  409. package/distHelpers/mock_session.d.ts +10 -0
  410. package/distHelpers/mock_session.js +26 -0
  411. package/distHelpers/mock_session.js.map +1 -0
  412. package/distNodeJS/generate_address_space.d.ts +6 -0
  413. package/distNodeJS/generate_address_space.js +53 -0
  414. package/distNodeJS/generate_address_space.js.map +1 -0
  415. package/distNodeJS/index.js +18 -0
  416. package/distNodeJS/index.js.map +1 -0
  417. package/package.json +49 -38
  418. package/source/helpers/dump_tools.ts +92 -0
  419. package/src/nodeset_tools/dump_to_bsd.ts +198 -0
  420. package/.mocharc.yml +0 -12
  421. package/generate.js +0 -1
  422. package/source_nodejs/generate_address_space.ts +0 -60
  423. package/test_helpers/date_utils.ts +0 -5
  424. package/test_helpers/get_mini_address_space.ts +0 -42
  425. package/test_helpers/mock_session.ts +0 -34
  426. package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
  427. package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
  428. package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
  429. package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
  430. package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
  431. package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
  432. package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
  433. package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
  434. package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
  435. package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
  436. package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
  437. package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
  438. package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
  439. package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
  440. package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
  441. package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
  442. package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
  443. package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
  444. package/test_helpers/test_fixtures/issue_846.xml +0 -3172
  445. package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
  446. package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
  447. package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
  448. package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
  449. package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
  450. package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
  451. package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
  452. package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
  453. package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
  454. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
  455. package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
  456. package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
  457. package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
  458. package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
  459. /package/{test_helpers/index.ts → distHelpers/index.d.ts} +0 -0
  460. /package/{source_nodejs/index.ts → distNodeJS/index.d.ts} +0 -0
@@ -0,0 +1,1484 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NodeSetLoader = void 0;
13
+ /* eslint-disable max-statements */
14
+ /**
15
+ * @module node-opcua-address-space
16
+ */
17
+ const util_1 = require("util");
18
+ const chalk = require("chalk");
19
+ const ec = require("node-opcua-basic-types");
20
+ const node_opcua_assert_1 = require("node-opcua-assert");
21
+ const node_opcua_basic_types_1 = require("node-opcua-basic-types");
22
+ const node_opcua_data_access_1 = require("node-opcua-data-access");
23
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
24
+ const node_opcua_debug_1 = require("node-opcua-debug");
25
+ const node_opcua_extension_object_1 = require("node-opcua-extension-object");
26
+ const node_opcua_factory_1 = require("node-opcua-factory");
27
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
28
+ const node_opcua_service_call_1 = require("node-opcua-service-call");
29
+ const node_opcua_types_1 = require("node-opcua-types");
30
+ const node_opcua_variant_1 = require("node-opcua-variant");
31
+ const node_opcua_xml2json_1 = require("node-opcua-xml2json");
32
+ const semver = require("semver");
33
+ const namespace_post_step_1 = require("./namespace_post_step");
34
+ const ensure_datatype_extracted_1 = require("./ensure_datatype_extracted");
35
+ const decode_xml_extension_object_1 = require("./decode_xml_extension_object");
36
+ const make_semver_compatible_1 = require("./make_semver_compatible");
37
+ const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
38
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
39
+ const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
40
+ function __make_back_references(namespace) {
41
+ const namespaceP = namespace;
42
+ for (const node of namespaceP.nodeIterator()) {
43
+ node.propagate_back_references();
44
+ }
45
+ for (const node of namespaceP.nodeIterator()) {
46
+ node.install_extra_properties();
47
+ }
48
+ }
49
+ function make_back_references(addressSpace) {
50
+ const addressSpacePrivate = addressSpace;
51
+ addressSpacePrivate.suspendBackReference = false;
52
+ addressSpace.getNamespaceArray().map(__make_back_references);
53
+ }
54
+ function stringToUInt32Array(str) {
55
+ const array = str ? str.split(",").map((value) => parseInt(value, 10)) : null;
56
+ return array;
57
+ }
58
+ function convertAccessLevel(accessLevel) {
59
+ const accessLevelN = parseInt(accessLevel || "1", 10); // CurrentRead if not specified
60
+ return (0, node_opcua_data_model_1.makeAccessLevelFlag)(accessLevelN);
61
+ }
62
+ function makeDefaultVariant(addressSpace, dataTypeNode, valueRank) {
63
+ let variant = { dataType: node_opcua_variant_1.DataType.Null };
64
+ const nodeDataType = addressSpace.findNode(dataTypeNode);
65
+ if (nodeDataType && nodeDataType.basicDataType) {
66
+ const basicDataType = nodeDataType.basicDataType;
67
+ if (basicDataType === node_opcua_variant_1.DataType.Variant) {
68
+ /// we don't now what is the variant
69
+ return undefined;
70
+ }
71
+ if (basicDataType === node_opcua_variant_1.DataType.ExtensionObject) {
72
+ return { dataType: node_opcua_variant_1.DataType.ExtensionObject, value: null };
73
+ }
74
+ const builtInType = (0, node_opcua_factory_1.getBuiltInType)(node_opcua_variant_1.DataType[basicDataType]);
75
+ if (builtInType === undefined || builtInType === null) {
76
+ errorLog("Cannot find builtInType for ", basicDataType);
77
+ return { dataType: node_opcua_variant_1.DataType.Null };
78
+ }
79
+ const dv = builtInType.defaultValue;
80
+ const value = typeof dv === "function" ? dv() : dv;
81
+ let arrayType;
82
+ /*
83
+ * * n > 1 : the Value is an array with the specified number of dimensions.
84
+ * * OneDimension (1): The value is an array with one dimension.
85
+ * * OneOrMoreDimensions (0): The value is an array with one or more dimensions.
86
+ * * Scalar (-1): The value is not an array.
87
+ * * Any (-2): The value can be a scalar or an array with any number of dimensions.
88
+ * * ScalarOrOneDimension (-3): The value can be a scalar or a one dimensional array.
89
+ */
90
+ switch (valueRank) {
91
+ case -3: // ScalarOrOneDimension (-3):
92
+ case -2: // any
93
+ case -1:
94
+ arrayType = node_opcua_variant_1.VariantArrayType.Scalar;
95
+ variant = { dataType: basicDataType, value, arrayType };
96
+ break;
97
+ case 0: // one or more dimension
98
+ case 1: // one dimension
99
+ arrayType = node_opcua_variant_1.VariantArrayType.Array;
100
+ variant = { dataType: basicDataType, value: [], arrayType };
101
+ break;
102
+ default:
103
+ arrayType = node_opcua_variant_1.VariantArrayType.Matrix;
104
+ variant = { dataType: basicDataType, value: [], arrayType, dimensions: [] };
105
+ break;
106
+ }
107
+ }
108
+ return variant;
109
+ }
110
+ function makeNodeSetParserEngine(addressSpace, options) {
111
+ const addressSpace1 = addressSpace;
112
+ addressSpace1.suspendBackReference = true;
113
+ options.loadDeprecatedNodes = options.loadDeprecatedNodes === undefined ? true : options.loadDeprecatedNodes;
114
+ options.loadDraftNodes = options.loadDraftNodes || false;
115
+ const postTasks = [];
116
+ const postTasks0_InitializeVariable = [];
117
+ const postTasks0_DecodePojoString = [];
118
+ const postTasks1_InitializeVariable = [];
119
+ const postTasks2_AssignedExtensionObjectToDataValue = [];
120
+ let alias_map = {};
121
+ /**
122
+ * @param aliasName
123
+ */
124
+ function addAlias(aliasName, nodeIdInXmlContext) {
125
+ (0, node_opcua_assert_1.assert)(typeof nodeIdInXmlContext === "string");
126
+ const nodeId = _translateNodeId(nodeIdInXmlContext);
127
+ (0, node_opcua_assert_1.assert)(nodeId instanceof node_opcua_nodeid_1.NodeId);
128
+ alias_map[aliasName] = nodeId;
129
+ addressSpace1.getNamespace(nodeId.namespace).addAlias(aliasName, nodeId);
130
+ }
131
+ let namespace_uri_translation = {};
132
+ let namespaceCounter = 0;
133
+ let found_namespace_in_uri = {};
134
+ let models = [];
135
+ let performedCalled = false;
136
+ function _reset_namespace_translation() {
137
+ debugLog("_reset_namespace_translation");
138
+ namespace_uri_translation = {};
139
+ found_namespace_in_uri = {};
140
+ namespaceCounter = 0;
141
+ alias_map = {};
142
+ models = [];
143
+ performedCalled = false;
144
+ }
145
+ function _translateNamespaceIndex(innerIndex) {
146
+ const namespaceIndex = namespace_uri_translation[innerIndex];
147
+ // istanbul ignore next
148
+ if (namespaceIndex === undefined) {
149
+ debugLog("Warning: namespace_uri_translation = ", namespace_uri_translation);
150
+ errorLog("namespace_uri_translation", namespace_uri_translation);
151
+ throw new Error("_translateNamespaceIndex() ! Cannot find namespace definition for index " + innerIndex);
152
+ }
153
+ return namespaceIndex;
154
+ }
155
+ function _internal_addReferenceType(params) {
156
+ // istanbul ignore next
157
+ if (!(params.nodeId instanceof node_opcua_nodeid_1.NodeId)) {
158
+ throw new Error("invalid param");
159
+ } // already translated
160
+ const namespace = addressSpace1.getNamespace(params.nodeId.namespace);
161
+ namespace.addReferenceType(params);
162
+ }
163
+ function _internal_createNode(params) {
164
+ // istanbul ignore next
165
+ if (!(params.nodeId instanceof node_opcua_nodeid_1.NodeId)) {
166
+ throw new Error("invalid param expecting a valid nodeId");
167
+ } // already translated
168
+ const namespace = addressSpace1.getNamespace(params.nodeId.namespace);
169
+ return namespace.internalCreateNode(params);
170
+ }
171
+ function _register_namespace_uri_in_translation_table(namespaceUri) {
172
+ if (found_namespace_in_uri[namespaceUri]) {
173
+ return;
174
+ }
175
+ const namespace = addressSpace1.getNamespace(namespaceUri);
176
+ // istanbul ignore next
177
+ if (!namespace) {
178
+ throw new Error("cannot find namespace for " +
179
+ namespaceUri +
180
+ "\nplease make sure to initialize your address space with the corresponding nodeset files");
181
+ }
182
+ found_namespace_in_uri[namespaceUri] = namespace;
183
+ const index_in_xml = namespaceCounter;
184
+ namespaceCounter++;
185
+ namespace_uri_translation[index_in_xml] = namespace.index;
186
+ doDebug &&
187
+ debugLog(" _register_namespace_uri = ", namespaceUri, "index in Xml=", index_in_xml, " index in addressSpace", namespace.index);
188
+ }
189
+ function _add_namespace(model) {
190
+ if (model.requiredModels.length > 0) {
191
+ // check that required models exist already in the address space
192
+ for (const requiredModel of model.requiredModels) {
193
+ const existingNamespace = addressSpace1.getNamespace(requiredModel.modelUri);
194
+ // istanbul ignore next
195
+ if (!existingNamespace) {
196
+ errorLog("Please ensure that the required namespace ", requiredModel.modelUri, "is loaded firs when loading ", model.modelUri);
197
+ throw new Error("LoadNodeSet : Cannot find namespace for " + requiredModel.modelUri);
198
+ }
199
+ /**
200
+ * from https://reference.opcfoundation.org/Core/docs/Part6/F.2/
201
+ * The version of the model defined in the UANodeSet.
202
+ * This is a human readable string and not intended for programmatic comparisons.
203
+ *
204
+ */
205
+ const isLowerVersion = (existingVersion, requiredVersion) => {
206
+ const existingSemver = (0, make_semver_compatible_1.makeSemverCompatible)(existingVersion);
207
+ const requiredSemver = (0, make_semver_compatible_1.makeSemverCompatible)(requiredVersion);
208
+ return semver.lt(existingSemver, requiredSemver);
209
+ };
210
+ if (isLowerVersion(existingNamespace.version, requiredModel.version)) {
211
+ errorLog("Expecting ", requiredModel.modelUri, " with version to be at least", requiredModel.version, " but namespace version is ", existingNamespace.version);
212
+ }
213
+ if (existingNamespace.publicationDate.getTime() < requiredModel.publicationDate.getTime()) {
214
+ errorLog("Expecting ", requiredModel.modelUri, " with publicationDatea at least ", requiredModel.publicationDate.toUTCString(), " but namespace publicationDate is ", existingNamespace.publicationDate.toUTCString());
215
+ }
216
+ }
217
+ }
218
+ let namespace;
219
+ // Model must not be already registered
220
+ const existingNamespace = addressSpace1.getNamespace(model.modelUri);
221
+ if (existingNamespace) {
222
+ // special treatment for namespace 0
223
+ // istanbul ignore else
224
+ if (model.modelUri === "http://opcfoundation.org/UA/") {
225
+ namespace = existingNamespace;
226
+ }
227
+ else {
228
+ throw new Error(" namespace already registered " + model.modelUri);
229
+ }
230
+ }
231
+ else {
232
+ namespace = addressSpace1.registerNamespace(model.modelUri);
233
+ namespace.setRequiredModels(model.requiredModels);
234
+ }
235
+ namespace.version = model.version;
236
+ namespace.publicationDate = model.publicationDate || namespace.publicationDate;
237
+ return namespace;
238
+ }
239
+ const reg = /ns=([0-9]+);(.*)/;
240
+ function _translateNodeId(nodeId) {
241
+ if (alias_map[nodeId]) {
242
+ return alias_map[nodeId];
243
+ }
244
+ const m = nodeId.match(reg);
245
+ if (m) {
246
+ const namespaceIndex = _translateNamespaceIndex(parseInt(m[1], 10));
247
+ nodeId = "ns=" + namespaceIndex + ";" + m[2];
248
+ }
249
+ return (0, node_opcua_nodeid_1.resolveNodeId)(nodeId);
250
+ }
251
+ function _translateReferenceType(refType) {
252
+ return _translateNodeId(refType);
253
+ }
254
+ /**
255
+ * convert a nodeId
256
+ *
257
+ * @method convertToNodeId
258
+ * @param nodeId {String|null}
259
+ * @return {NodeId}
260
+ *
261
+ * @example
262
+ * convertToNodeId("String") => resolve alias
263
+ * convertToNodeId("i=58") => resolve to nodeId in namespace 0
264
+ * convertToNodeId("ns=1;i=100") => convert namespace from xml namespace
265
+ * table to corresponding namespace in addressSpace
266
+ */
267
+ function convertToNodeId(nodeIdLike) {
268
+ // treat alias
269
+ if (!nodeIdLike) {
270
+ return null;
271
+ }
272
+ const nodeId = _translateNodeId(nodeIdLike);
273
+ return addressSpace1.resolveNodeId(nodeId);
274
+ }
275
+ function convertQualifiedName(qualifiedName) {
276
+ const qn = (0, node_opcua_data_model_1.stringToQualifiedName)(qualifiedName);
277
+ // Xx if (qn.namespaceIndex > 0) {
278
+ qn.namespaceIndex = _translateNamespaceIndex(qn.namespaceIndex);
279
+ // Xx }
280
+ return qn;
281
+ }
282
+ const state_Alias = {
283
+ finish() {
284
+ addAlias(this.attrs.Alias, this.text);
285
+ }
286
+ };
287
+ const references_parser = {
288
+ init() {
289
+ this.parent.obj.references = [];
290
+ this.array = this.parent.obj.references;
291
+ },
292
+ parser: {
293
+ Reference: {
294
+ finish() {
295
+ this.parent.array.push({
296
+ isForward: this.attrs.IsForward === undefined ? true : this.attrs.IsForward === "false" ? false : true,
297
+ nodeId: convertToNodeId(this.text),
298
+ referenceType: _translateReferenceType(this.attrs.ReferenceType)
299
+ });
300
+ }
301
+ }
302
+ }
303
+ };
304
+ const state_UAObject = {
305
+ init(name, attrs) {
306
+ _perform();
307
+ this.obj = {};
308
+ this.obj.nodeClass = node_opcua_data_model_1.NodeClass.Object;
309
+ this.obj.isAbstract = ec.coerceBoolean(attrs.IsAbstract);
310
+ this.obj.nodeId = convertToNodeId(attrs.NodeId) || null;
311
+ this.obj.browseName = convertQualifiedName(attrs.BrowseName);
312
+ this.obj.eventNotifier = ec.coerceByte(attrs.EventNotifier) || 0;
313
+ this.obj.symbolicName = attrs.SymbolicName || null;
314
+ this.isDraft = attrs.ReleaseStatus === "Draft";
315
+ this.isDeprecated = attrs.ReleaseStatus === "Deprecated";
316
+ },
317
+ finish() {
318
+ if (canIngore({ isDraft: this.isDraft, isDeprecated: this.isDeprecated }, this.obj)) {
319
+ return;
320
+ }
321
+ _internal_createNode(this.obj);
322
+ },
323
+ parser: {
324
+ DisplayName: {
325
+ finish() {
326
+ this.parent.obj.displayName = this.text;
327
+ }
328
+ },
329
+ Description: {
330
+ finish() {
331
+ this.parent.obj.description = this.text;
332
+ }
333
+ },
334
+ References: references_parser
335
+ }
336
+ };
337
+ const state_UAObjectType = {
338
+ init(name, attrs) {
339
+ _perform();
340
+ this.obj = {};
341
+ this.obj.nodeClass = node_opcua_data_model_1.NodeClass.ObjectType;
342
+ this.obj.isAbstract = ec.coerceBoolean(attrs.IsAbstract);
343
+ this.obj.nodeId = convertToNodeId(attrs.NodeId) || null;
344
+ this.obj.browseName = convertQualifiedName(attrs.BrowseName);
345
+ this.obj.eventNotifier = ec.coerceByte(attrs.EventNotifier) || 0;
346
+ },
347
+ finish() {
348
+ _internal_createNode(this.obj);
349
+ },
350
+ parser: {
351
+ DisplayName: {
352
+ finish() {
353
+ this.parent.obj.displayName = this.text;
354
+ }
355
+ },
356
+ Description: {
357
+ finish() {
358
+ this.parent.obj.description = this.text;
359
+ }
360
+ },
361
+ References: references_parser
362
+ }
363
+ };
364
+ const state_UAReferenceType = {
365
+ init(name, attrs) {
366
+ _perform();
367
+ this.obj = {};
368
+ this.obj.nodeClass = node_opcua_data_model_1.NodeClass.ReferenceType;
369
+ this.obj.isAbstract = ec.coerceBoolean(attrs.IsAbstract);
370
+ this.obj.nodeId = convertToNodeId(attrs.NodeId) || null;
371
+ this.obj.browseName = convertQualifiedName(attrs.BrowseName);
372
+ },
373
+ finish() {
374
+ _internal_addReferenceType(this.obj);
375
+ },
376
+ parser: {
377
+ DisplayName: {
378
+ finish() {
379
+ this.parent.obj.displayName = this.text;
380
+ }
381
+ },
382
+ Description: {
383
+ finish() {
384
+ this.parent.obj.description = this.text;
385
+ }
386
+ },
387
+ InverseName: {
388
+ finish() {
389
+ this.parent.obj.inverseName = this.text;
390
+ }
391
+ },
392
+ References: references_parser
393
+ }
394
+ };
395
+ const pendingSimpleTypeToRegister = [];
396
+ const state_UADataType = {
397
+ init(name, attrs) {
398
+ _perform();
399
+ this.obj = {};
400
+ this.obj.nodeClass = node_opcua_data_model_1.NodeClass.DataType;
401
+ this.obj.isAbstract = ec.coerceBoolean(attrs.IsAbstract) || false;
402
+ this.obj.nodeId = convertToNodeId(attrs.NodeId) || null;
403
+ this.obj.browseName = convertQualifiedName(attrs.BrowseName);
404
+ this.obj.displayName = "";
405
+ this.obj.description = "";
406
+ this.obj.symbolicName = attrs.SymbolicName;
407
+ this.isDraft = attrs.ReleaseStatus === "Draft";
408
+ this.isDeprecated = attrs.ReleaseStatus === "Deprecated";
409
+ this.definitionFields = [];
410
+ },
411
+ finish() {
412
+ if (canIngore({ isDraft: this.isDraft, isDeprecated: this.isDeprecated }, this.obj)) {
413
+ return;
414
+ }
415
+ const definitionFields = this.definitionFields;
416
+ // replace DataType with nodeId, and description to LocalizedText
417
+ definitionFields.map((x) => {
418
+ if (x.description) {
419
+ x.description = { text: x.description };
420
+ }
421
+ if (x.displayName) {
422
+ x.displayName = { text: x.displayName };
423
+ }
424
+ if (x.dataType) {
425
+ x.dataType = convertToNodeId(x.dataType);
426
+ }
427
+ return x;
428
+ });
429
+ this.obj.partialDefinition = definitionFields;
430
+ let capturedDataTypeNode = _internal_createNode(this.obj);
431
+ const processBasicDataType = (addressSpace2) => __awaiter(this, void 0, void 0, function* () {
432
+ const definitionName = capturedDataTypeNode.browseName.name;
433
+ const isStructure = capturedDataTypeNode.isStructure();
434
+ const isEnumeration = capturedDataTypeNode.isEnumeration();
435
+ if (!isEnumeration && !isStructure && capturedDataTypeNode.nodeId.namespace !== 0) {
436
+ // add a custom basic type that is not a structure nor a enumeration
437
+ pendingSimpleTypeToRegister.push({ name: definitionName, dataTypeNodeId: capturedDataTypeNode.nodeId });
438
+ }
439
+ capturedDataTypeNode = undefined;
440
+ });
441
+ postTasks.push(processBasicDataType);
442
+ },
443
+ parser: {
444
+ DisplayName: {
445
+ finish() {
446
+ this.parent.obj.displayName = this.text;
447
+ }
448
+ },
449
+ Description: {
450
+ finish() {
451
+ this.parent.obj.description = this.text;
452
+ }
453
+ },
454
+ References: references_parser,
455
+ Definition: node_opcua_xml2json_1._definitionParser
456
+ }
457
+ };
458
+ const localizedText_parser = {
459
+ LocalizedText: {
460
+ init() {
461
+ this.localizedText = {};
462
+ },
463
+ parser: {
464
+ Locale: {
465
+ finish() {
466
+ this.parent.localizedText.locale = this.text.trim();
467
+ }
468
+ },
469
+ Text: {
470
+ finish() {
471
+ this.parent.localizedText.text = this.text.trim();
472
+ }
473
+ }
474
+ }
475
+ }
476
+ };
477
+ const qualifiedName_parser = {
478
+ QualifiedName: {
479
+ init() {
480
+ this.qualifiedName = {
481
+ namespaceIndex: 0,
482
+ name: null
483
+ };
484
+ },
485
+ parser: {
486
+ Name: {
487
+ finish() {
488
+ this.parent.qualifiedName.name = this.text.trim();
489
+ }
490
+ },
491
+ NamespaceIndex: {
492
+ finish() {
493
+ const ns = parseInt(this.text, 10);
494
+ const t = _translateNodeId((0, node_opcua_nodeid_1.resolveNodeId)(`ns=${ns};i=1`).toString());
495
+ this.parent.qualifiedName.namespaceIndex = t.namespace;
496
+ }
497
+ }
498
+ }
499
+ }
500
+ };
501
+ const nodeId_parser = {
502
+ NodeId: {
503
+ init() {
504
+ this.nodeId = "";
505
+ },
506
+ parser: {
507
+ Identifier: {
508
+ finish() {
509
+ this.parent.nodeId = _translateNodeId((0, node_opcua_nodeid_1.resolveNodeId)(this.text.trim()).toString());
510
+ }
511
+ }
512
+ }
513
+ }
514
+ };
515
+ const enumValueType_parser = {
516
+ EnumValueType: {
517
+ init() {
518
+ this.enumValueType = new node_opcua_types_1.EnumValueType({
519
+ description: undefined,
520
+ displayName: undefined,
521
+ value: [0, 0] // Int64
522
+ });
523
+ },
524
+ parser: {
525
+ Value: {
526
+ finish() {
527
+ // Low part
528
+ this.parent.enumValueType.value[1] = parseInt(this.text, 10);
529
+ }
530
+ },
531
+ DisplayName: Object.assign(Object.assign({}, localizedText_parser.LocalizedText), { finish() {
532
+ this.parent.enumValueType.displayName = Object.assign({}, this.localizedText);
533
+ } }),
534
+ Description: Object.assign(Object.assign({}, localizedText_parser.LocalizedText), { finish() {
535
+ this.parent.enumValueType.description = Object.assign({}, this.localizedText);
536
+ } })
537
+ },
538
+ finish() {
539
+ this.enumValueType = new node_opcua_types_1.EnumValueType(this.enumValueType);
540
+ }
541
+ }
542
+ };
543
+ const argument_parser = {
544
+ Argument: {
545
+ init() {
546
+ this.argument = new node_opcua_service_call_1.Argument({});
547
+ },
548
+ parser: {
549
+ Name: {
550
+ finish() {
551
+ this.parent.argument.name = this.text.trim();
552
+ }
553
+ },
554
+ DataType: {
555
+ parser: {
556
+ Identifier: {
557
+ finish() {
558
+ this.parent.parent.argument.dataType = _translateNodeId((0, node_opcua_nodeid_1.resolveNodeId)(this.text.trim()).toString());
559
+ }
560
+ }
561
+ }
562
+ },
563
+ ValueRank: {
564
+ finish() {
565
+ this.parent.argument.valueRank = parseInt(this.text.trim(), 10);
566
+ }
567
+ },
568
+ ArrayDimensions: {
569
+ finish() {
570
+ // xx this.parent.argument.arrayDimensions =[];
571
+ }
572
+ },
573
+ Description: {
574
+ init() {
575
+ this._text = "";
576
+ this.locale = null;
577
+ this.text = null;
578
+ },
579
+ parser: {
580
+ Locale: {
581
+ init() {
582
+ this.text = "";
583
+ },
584
+ finish() {
585
+ this.parent.locale = this.text.trim();
586
+ }
587
+ },
588
+ Text: {
589
+ finish() {
590
+ this.text = this.text || "";
591
+ this.parent._text = this.text.trim();
592
+ }
593
+ }
594
+ },
595
+ finish() {
596
+ this.parent.argument.description = (0, node_opcua_data_model_1.coerceLocalizedText)(this._text);
597
+ }
598
+ }
599
+ },
600
+ finish() {
601
+ // xx this.argument = new Argument(this.argument);
602
+ }
603
+ }
604
+ };
605
+ const Range_parser = {
606
+ Range: {
607
+ init() {
608
+ this.range = new node_opcua_types_1.Range({});
609
+ },
610
+ parser: {
611
+ Low: {
612
+ finish() {
613
+ this.parent.range.low = parseFloat(this.text);
614
+ }
615
+ },
616
+ High: {
617
+ finish() {
618
+ this.parent.range.high = parseFloat(this.text);
619
+ }
620
+ }
621
+ }
622
+ }
623
+ };
624
+ const EUInformation_parser = {
625
+ EUInformation: {
626
+ init() {
627
+ this.euInformation = new node_opcua_data_access_1.EUInformation({});
628
+ },
629
+ parser: {
630
+ NamespaceUri: {
631
+ finish() {
632
+ this.parent.euInformation.namespaceUri = this.text;
633
+ }
634
+ },
635
+ UnitId: {
636
+ finish() {
637
+ this.parent.euInformation.unitId = parseInt(this.text, 10);
638
+ }
639
+ },
640
+ DisplayName: Object.assign(Object.assign({}, localizedText_parser.LocalizedText), { finish() {
641
+ this.parent.euInformation.displayName = Object.assign({}, this.localizedText);
642
+ } }),
643
+ Description: Object.assign(Object.assign({}, localizedText_parser.LocalizedText), { finish() {
644
+ this.parent.euInformation.description = Object.assign({}, this.localizedText);
645
+ } })
646
+ },
647
+ finish() {
648
+ this.euInformation = new node_opcua_data_access_1.EUInformation(this.euInformation);
649
+ }
650
+ }
651
+ };
652
+ const _extensionObject_inner_parser = {
653
+ TypeId: {
654
+ parser: {
655
+ Identifier: {
656
+ finish() {
657
+ const typeDefinitionId = this.text.trim();
658
+ const self = this.parent.parent; // ExtensionObject
659
+ self.typeDefinitionId = (0, node_opcua_nodeid_1.resolveNodeId)(typeDefinitionId);
660
+ }
661
+ }
662
+ }
663
+ },
664
+ Body2: new node_opcua_xml2json_1.FragmentClonerParser(),
665
+ Body: {
666
+ parser: {
667
+ Argument: argument_parser.Argument,
668
+ EUInformation: EUInformation_parser.EUInformation,
669
+ EnumValueType: enumValueType_parser.EnumValueType,
670
+ Range: Range_parser.Range
671
+ },
672
+ startElement(elementName, attrs) {
673
+ const self = this.parent; // ExtensionObject
674
+ self.extensionObject = null;
675
+ self.extensionObjectPojo = null;
676
+ if (!Object.prototype.hasOwnProperty.call(this.parser, elementName)) {
677
+ // treat it as a opaque XML bloc for the time being
678
+ // until we find the definition of this object, so we know how to interpret the fields
679
+ this._cloneFragment = new node_opcua_xml2json_1.InternalFragmentClonerReaderState();
680
+ this.engine._promote(this._cloneFragment, this.engine.currentLevel, elementName, attrs);
681
+ }
682
+ },
683
+ finish() {
684
+ const self = this.parent; // ExtensionObject
685
+ // typeDefinitionId is also the "Default XML" encoding nodeId !
686
+ switch (self.typeDefinitionId.toString()) {
687
+ case "i=7616": // EnumValueType
688
+ case "ns=0;i=7616": // EnumValueType
689
+ self.extensionObject = self.parser.Body.parser.EnumValueType.enumValueType;
690
+ (0, node_opcua_assert_1.assert)(self.extensionObject !== null && typeof self.extensionObject === "object");
691
+ (0, node_opcua_assert_1.assert)(self.extensionObject instanceof node_opcua_extension_object_1.ExtensionObject);
692
+ break;
693
+ case "i=297": // Arguments
694
+ case "ns=0;i=297": // Arguments
695
+ self.extensionObject = self.parser.Body.parser.Argument.argument;
696
+ (0, node_opcua_assert_1.assert)(self.extensionObject !== null && typeof self.extensionObject === "object");
697
+ (0, node_opcua_assert_1.assert)(self.extensionObject instanceof node_opcua_extension_object_1.ExtensionObject);
698
+ break;
699
+ case "i=888":
700
+ case "ns=0;i=888": // EUInformation
701
+ self.extensionObject = self.parser.Body.parser.EUInformation.euInformation;
702
+ (0, node_opcua_assert_1.assert)(self.extensionObject !== null && typeof self.extensionObject === "object");
703
+ (0, node_opcua_assert_1.assert)(self.extensionObject instanceof node_opcua_extension_object_1.ExtensionObject);
704
+ break;
705
+ case "i=885": // Range
706
+ case "ns=0;i=885":
707
+ self.extensionObject = self.parser.Body.parser.Range.range;
708
+ (0, node_opcua_assert_1.assert)(self.extensionObject !== null && typeof self.extensionObject === "object");
709
+ (0, node_opcua_assert_1.assert)(self.extensionObject instanceof node_opcua_extension_object_1.ExtensionObject);
710
+ break;
711
+ default: {
712
+ // istanbul ignore next
713
+ if (!this._cloneFragment) {
714
+ // the XML file is probably not exposing standard UA extension object correctly.
715
+ // this has been seen in some generated xml files using the dataType nodeId instead of the default encoding
716
+ // nodeid
717
+ errorLog("[NODE-OPCUA-E12] standard OPCUA Extension object from (namespace=0) has a invalid TypeId", self.typeDefinitionId.toString());
718
+ break;
719
+ }
720
+ this.bodyXML = this._cloneFragment.value;
721
+ this._cloneFragment.value = null;
722
+ // the "Default Xml" encoding nodeId
723
+ const xmlEncodingNodeId = _translateNodeId(self.typeDefinitionId.toString());
724
+ if (xmlEncodingNodeId.isEmpty()) {
725
+ debugLog("xmlEncodingNodeId is empty for " + self.typeDefinitionId.toString());
726
+ break;
727
+ }
728
+ let captureXmlBody = this.bodyXML;
729
+ if (doDebug) {
730
+ debugLog("xxxx ", chalk.yellow(captureXmlBody));
731
+ }
732
+ // this is a user defined Extension Object
733
+ debugLog("load nodeset2: typeDefinitionId in ExtensionObject Default XML = " + xmlEncodingNodeId.toString());
734
+ let captured = self.postTaskData;
735
+ self.extensionObjectPojo = null;
736
+ const task = (addressSpace2) => __awaiter(this, void 0, void 0, function* () {
737
+ const extensionObject = yield (0, decode_xml_extension_object_1.decodeXmlExtensionObject)(addressSpace2, xmlEncodingNodeId, captureXmlBody);
738
+ if (captured) {
739
+ captured.postponedExtensionObject = extensionObject;
740
+ }
741
+ captureXmlBody = undefined;
742
+ captured = undefined;
743
+ });
744
+ postTasks0_DecodePojoString.push(task);
745
+ (0, node_opcua_assert_1.assert)(!self.extensionObject || self.extensionObject instanceof node_opcua_extension_object_1.ExtensionObject);
746
+ break;
747
+ }
748
+ }
749
+ }
750
+ }
751
+ };
752
+ const extensionObject_parser = {
753
+ ExtensionObject: {
754
+ init() {
755
+ this.typeDefinitionId = node_opcua_nodeid_1.NodeId.nullNodeId;
756
+ this.extensionObject = null;
757
+ this.extensionObjectPojo = null;
758
+ this.postTaskData = { postponedExtensionObject: null };
759
+ },
760
+ parser: _extensionObject_inner_parser,
761
+ finish() {
762
+ /* empty */
763
+ }
764
+ }
765
+ };
766
+ function BasicType_parser(dataType, parseFunc) {
767
+ const _parser = {};
768
+ const r = {
769
+ init(name, attrs) {
770
+ this.value = undefined;
771
+ },
772
+ finish() {
773
+ this.value = parseFunc.call(this, this.text);
774
+ }
775
+ };
776
+ _parser[dataType] = r;
777
+ return _parser;
778
+ }
779
+ function ListOf(dataType, parseFunc) {
780
+ return {
781
+ init() {
782
+ this.listData = [];
783
+ },
784
+ parser: BasicType_parser(dataType, parseFunc),
785
+ finish() {
786
+ this.parent.parent.obj.value = {
787
+ arrayType: node_opcua_variant_1.VariantArrayType.Array,
788
+ dataType: node_opcua_variant_1.DataType[dataType],
789
+ value: this.listData
790
+ };
791
+ },
792
+ endElement(element) {
793
+ this.listData.push(this.parser[dataType].value);
794
+ }
795
+ };
796
+ }
797
+ function parser2(type, p) {
798
+ return {
799
+ finish() {
800
+ this.parent.parent.obj.value = {
801
+ arrayType: node_opcua_variant_1.VariantArrayType.Scalar,
802
+ dataType: node_opcua_variant_1.DataType[type],
803
+ value: p(this.text)
804
+ };
805
+ }
806
+ };
807
+ }
808
+ const parseUInt64 = (str) => (0, node_opcua_basic_types_1.coerceUInt64)(str);
809
+ const parseInt64 = (str) => (0, node_opcua_basic_types_1.coerceInt64)(str);
810
+ const state_Variant = {
811
+ init: () => {
812
+ /* empty */
813
+ },
814
+ parser: {
815
+ QualifiedName: Object.assign(Object.assign({}, qualifiedName_parser.QualifiedName), { finish() {
816
+ this.parent.parent.obj.value = {
817
+ dataType: node_opcua_variant_1.DataType.QualifiedName,
818
+ value: this.qualifiedName
819
+ };
820
+ } }),
821
+ LocalizedText: Object.assign(Object.assign({}, localizedText_parser.LocalizedText), { finish() {
822
+ this.parent.parent.obj.value = {
823
+ dataType: node_opcua_variant_1.DataType.LocalizedText,
824
+ value: this.localizedText
825
+ };
826
+ } }),
827
+ XmlElement: {
828
+ finish() {
829
+ this.parent.parent.obj.value = {
830
+ dataType: node_opcua_variant_1.DataType.XmlElement,
831
+ value: this.text
832
+ };
833
+ }
834
+ },
835
+ String: {
836
+ finish() {
837
+ this.parent.parent.obj.value = {
838
+ dataType: node_opcua_variant_1.DataType.String,
839
+ value: this.text
840
+ };
841
+ }
842
+ },
843
+ Guid: {
844
+ parser: {
845
+ String: {
846
+ finish() {
847
+ const guid = this.text;
848
+ if (!(0, node_opcua_basic_types_1.isValidGuid)(guid)) {
849
+ /* ?*/
850
+ }
851
+ this.parent.parent.parent.obj.value = {
852
+ dataType: node_opcua_variant_1.DataType.Guid,
853
+ arrayType: node_opcua_variant_1.VariantArrayType.Scalar,
854
+ value: this.text
855
+ };
856
+ }
857
+ }
858
+ }
859
+ },
860
+ NodeId: {
861
+ parser: {
862
+ Identifier: {
863
+ finish() {
864
+ const nodeId = this.text;
865
+ this.parent.parent.parent.obj.value = {
866
+ dataType: node_opcua_variant_1.DataType.NodeId,
867
+ arrayType: node_opcua_variant_1.VariantArrayType.Scalar,
868
+ value: _translateNodeId((0, node_opcua_nodeid_1.resolveNodeId)(nodeId).toString())
869
+ };
870
+ }
871
+ }
872
+ }
873
+ },
874
+ Boolean: parser2("Boolean", ec.coerceBoolean),
875
+ Byte: parser2("Byte", parseInt),
876
+ Int16: parser2("Int16", parseInt),
877
+ Int32: parser2("Int32", parseInt),
878
+ Int8: parser2("Int8", parseInt),
879
+ SByte: parser2("SByte", parseInt),
880
+ UInt16: parser2("UInt16", parseInt),
881
+ UInt32: parser2("UInt32", parseInt),
882
+ UInt8: parser2("UInt8", parseInt),
883
+ UInt64: parser2("UInt64", parseUInt64),
884
+ Int64: parser2("Int64", parseInt64),
885
+ ByteString: {
886
+ init() {
887
+ this.value = null;
888
+ },
889
+ finish() {
890
+ const base64text = this.text;
891
+ const byteString = Buffer.from(base64text, "base64");
892
+ this.parent.parent.obj.value = {
893
+ arrayType: node_opcua_variant_1.VariantArrayType.Scalar,
894
+ dataType: node_opcua_variant_1.DataType.ByteString,
895
+ value: byteString
896
+ };
897
+ }
898
+ },
899
+ Float: {
900
+ finish() {
901
+ this.parent.parent.obj.value = {
902
+ dataType: node_opcua_variant_1.DataType.Float,
903
+ value: parseFloat(this.text)
904
+ };
905
+ }
906
+ },
907
+ Double: {
908
+ finish() {
909
+ this.parent.parent.obj.value = {
910
+ dataType: node_opcua_variant_1.DataType.Double,
911
+ value: parseFloat(this.text)
912
+ };
913
+ }
914
+ },
915
+ ListOfExtensionObject: {
916
+ init() {
917
+ this.listExtensionObject = [];
918
+ },
919
+ parser: extensionObject_parser,
920
+ finish() {
921
+ installExtensionObjectListInitializationPostTask(this);
922
+ },
923
+ startElement(elementName) {
924
+ /* empty */
925
+ const extensionObjectParser = this.parser.ExtensionObject;
926
+ extensionObjectParser.postTaskData = { postponedExtensionObject: null };
927
+ },
928
+ endElement(elementName) {
929
+ const extensionObjectParser = this.parser.ExtensionObject;
930
+ this.listExtensionObject.push(extensionObjectParser.extensionObject);
931
+ if (this.parser.ExtensionObject.extensionObject === null) {
932
+ // extension object creation will be postponed
933
+ const index = this.listExtensionObject.length - 1;
934
+ let capturedData = extensionObjectParser.postTaskData;
935
+ // istanbul ignore next
936
+ if (!capturedData) {
937
+ throw new Error("Internal Error : postponedExtensionObject not resolved");
938
+ }
939
+ let listExtensionObject = this.listExtensionObject;
940
+ const task = (addressSpace2) => __awaiter(this, void 0, void 0, function* () {
941
+ // istanbul ignore next
942
+ if (!capturedData.postponedExtensionObject) {
943
+ throw new Error("Internal Error : postponedExtensionObject not resolved");
944
+ }
945
+ listExtensionObject[index] = capturedData.postponedExtensionObject;
946
+ capturedData = undefined;
947
+ listExtensionObject = undefined;
948
+ });
949
+ postTasks2_AssignedExtensionObjectToDataValue.push(task);
950
+ }
951
+ }
952
+ },
953
+ ListOfLocalizedText: {
954
+ init() {
955
+ this.listData = [];
956
+ },
957
+ parser: localizedText_parser,
958
+ finish() {
959
+ this.parent.parent.obj.value = {
960
+ arrayType: node_opcua_variant_1.VariantArrayType.Array,
961
+ dataType: node_opcua_variant_1.DataType.LocalizedText,
962
+ value: this.listData
963
+ };
964
+ },
965
+ endElement() {
966
+ this.listData.push(this.parser.LocalizedText.localizedText);
967
+ }
968
+ },
969
+ ListOfQualifiedName: {
970
+ init() {
971
+ this.listData = [];
972
+ },
973
+ parser: qualifiedName_parser,
974
+ finish() {
975
+ this.parent.parent.obj.value = {
976
+ arrayType: node_opcua_variant_1.VariantArrayType.Array,
977
+ dataType: node_opcua_variant_1.DataType.QualifiedName,
978
+ value: this.listData
979
+ };
980
+ },
981
+ endElement() {
982
+ this.listData.push(this.parser.QualifiedName.qualifiedName);
983
+ }
984
+ },
985
+ ListOfNodeId: {
986
+ init() {
987
+ this.listData = [];
988
+ },
989
+ parser: nodeId_parser,
990
+ finish() {
991
+ this.parent.parent.obj.value = {
992
+ arrayType: node_opcua_variant_1.VariantArrayType.Array,
993
+ dataType: node_opcua_variant_1.DataType.NodeId,
994
+ value: this.listData
995
+ };
996
+ },
997
+ endElement(elementName) {
998
+ this.listData.push(this.parser.NodeId.nodeId);
999
+ }
1000
+ },
1001
+ ListOfBoolean: ListOf("Boolean", ec.coerceBoolean),
1002
+ ListOfByte: ListOf("Byte", parseInt),
1003
+ ListOfDouble: ListOf("Double", parseFloat),
1004
+ ListOfFloat: ListOf("Float", parseFloat),
1005
+ ListOfInt32: ListOf("Int32", parseInt),
1006
+ ListOfInt16: ListOf("Int16", parseInt),
1007
+ ListOfInt8: ListOf("Int8", parseInt),
1008
+ ListOfUInt32: ListOf("UInt32", parseInt),
1009
+ ListOfUInt16: ListOf("UInt16", parseInt),
1010
+ ListOfUInt8: ListOf("UInt8", parseInt),
1011
+ ListOfString: ListOf("String", (value) => value),
1012
+ ListOfXmlElement: ListOf("XmlElement", (value) => value),
1013
+ ExtensionObject: {
1014
+ init() {
1015
+ this.typeDefinitionId = node_opcua_nodeid_1.NodeId.nullNodeId;
1016
+ this.extensionObject = null;
1017
+ this.postTaskData = { postponedExtensionObject: null };
1018
+ },
1019
+ parser: _extensionObject_inner_parser,
1020
+ finish() {
1021
+ // istanbul ignore next
1022
+ if (this.extensionObject && !(this.extensionObject instanceof node_opcua_extension_object_1.ExtensionObject)) {
1023
+ throw new Error("expecting an extension object");
1024
+ }
1025
+ this.parent.parent.obj.value = {
1026
+ dataType: node_opcua_variant_1.DataType.ExtensionObject,
1027
+ value: this.extensionObject
1028
+ };
1029
+ if (!this.extensionObject) {
1030
+ installExtensionObjectInitializationPostTask(this);
1031
+ }
1032
+ }
1033
+ }
1034
+ }
1035
+ };
1036
+ function installExtensionObjectListInitializationPostTask(element) {
1037
+ let listExtensionObject = element.listExtensionObject;
1038
+ let nodeId = element.parent.parent.obj.nodeId;
1039
+ (0, node_opcua_assert_1.assert)(nodeId, "expecting a nodeid");
1040
+ const task = (addressSpace2) => __awaiter(this, void 0, void 0, function* () {
1041
+ const node = addressSpace2.findNode(nodeId);
1042
+ if (!node) {
1043
+ debugLog("Cannot find node with nodeId " + nodeId + ". may be the node was marked as deprecated");
1044
+ }
1045
+ else if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
1046
+ const v = node;
1047
+ (0, node_opcua_assert_1.assert)(v.getBasicDataType() === node_opcua_variant_1.DataType.ExtensionObject, "expecting an extension object");
1048
+ v.bindExtensionObject(listExtensionObject, { createMissingProp: false });
1049
+ }
1050
+ else if (node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
1051
+ // no need to bind a variable type
1052
+ const v = node;
1053
+ v /*fix me*/.value.value = listExtensionObject;
1054
+ }
1055
+ listExtensionObject.slice(0);
1056
+ listExtensionObject = undefined;
1057
+ nodeId = undefined;
1058
+ });
1059
+ postTasks2_AssignedExtensionObjectToDataValue.push(task);
1060
+ }
1061
+ function installExtensionObjectInitializationPostTask(element) {
1062
+ // let's create the mechanism that postpone the creation of the
1063
+ // extension object
1064
+ let data = element.postTaskData;
1065
+ let variant = element.parent.parent.obj.value;
1066
+ let nodeId = element.parent.parent.obj.nodeId;
1067
+ const task = (addressSpace2) => __awaiter(this, void 0, void 0, function* () {
1068
+ variant.value = data.postponedExtensionObject;
1069
+ (0, node_opcua_assert_1.assert)(nodeId, "expecting a nodeid");
1070
+ const node = addressSpace2.findNode(nodeId);
1071
+ if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
1072
+ const v = node;
1073
+ (0, node_opcua_assert_1.assert)(v.getBasicDataType() === node_opcua_variant_1.DataType.ExtensionObject, "expecting an extension object");
1074
+ v.bindExtensionObject(variant.value, { createMissingProp: false });
1075
+ }
1076
+ else if (node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
1077
+ const v = node;
1078
+ v /*fix me*/.value.value = variant.value;
1079
+ }
1080
+ data.postponedExtensionObject = null;
1081
+ data = undefined;
1082
+ variant = undefined;
1083
+ nodeId = undefined;
1084
+ });
1085
+ postTasks2_AssignedExtensionObjectToDataValue.push(task);
1086
+ }
1087
+ const canIngore = ({ isDraft, isDeprecated }, node) => {
1088
+ if (isDraft && !options.loadDraftNodes) {
1089
+ debugLog("Ignoring Draft =", node_opcua_data_model_1.NodeClass[node.nodeClass], node.browseName.toString());
1090
+ return true;
1091
+ }
1092
+ if (isDeprecated && !options.loadDeprecatedNodes) {
1093
+ debugLog("Ignoring Deprecate =", node_opcua_data_model_1.NodeClass[node.nodeClass], node.browseName.toString());
1094
+ return true;
1095
+ }
1096
+ return false;
1097
+ };
1098
+ const state_UAVariable = {
1099
+ init(name, attrs) {
1100
+ _perform();
1101
+ this.obj = {};
1102
+ this.obj.nodeClass = node_opcua_data_model_1.NodeClass.Variable;
1103
+ this.obj.browseName = convertQualifiedName(attrs.BrowseName);
1104
+ this.obj.parentNodeId = convertToNodeId(attrs.ParentNodeId);
1105
+ this.obj.dataType = convertToNodeId(attrs.DataType);
1106
+ this.obj.valueRank = attrs.ValueRank === undefined ? -1 : ec.coerceInt32(attrs.ValueRank);
1107
+ this.obj.arrayDimensions = this.obj.valueRank <= 0 ? null : stringToUInt32Array(attrs.ArrayDimensions);
1108
+ this.obj.minimumSamplingInterval = attrs.MinimumSamplingInterval ? parseInt(attrs.MinimumSamplingInterval, 10) : 0;
1109
+ this.obj.minimumSamplingInterval = parseInt(this.obj.minimumSamplingInterval, 10);
1110
+ this.obj.historizing = false;
1111
+ this.obj.nodeId = convertToNodeId(attrs.NodeId) || null;
1112
+ this.obj.accessLevel = convertAccessLevel(attrs.AccessLevel);
1113
+ this.obj.userAccessLevel = this.obj.accessLevel; // convertAccessLevel(attrs.UserAccessLevel || attrs.AccessLevel);
1114
+ this.isDraft = attrs.ReleaseStatus === "Draft";
1115
+ this.isDeprecated = attrs.ReleaseStatus === "Deprecated";
1116
+ },
1117
+ finish() {
1118
+ if (canIngore({ isDraft: this.isDraft, isDeprecated: this.isDeprecated }, this.obj)) {
1119
+ return;
1120
+ }
1121
+ /*
1122
+ // set default value based on obj data Type
1123
+ if (this.obj.value === undefined) {
1124
+ const dataTypeNode = this.obj.dataType;
1125
+ const valueRank = this.obj.valueRank;
1126
+ this.obj.value = makeDefaultVariant(addressSpace, dataTypeNode, valueRank);
1127
+ }
1128
+ */
1129
+ // eslint-disable-next-line prefer-const
1130
+ let capturedVariable;
1131
+ if (this.obj.value) {
1132
+ let capturedValue = this.obj.value;
1133
+ const task = (addressSpace2) => __awaiter(this, void 0, void 0, function* () {
1134
+ if (false && doDebug) {
1135
+ debugLog("1 setting value to ", capturedVariable.nodeId.toString(), new node_opcua_variant_1.Variant(capturedValue).toString());
1136
+ }
1137
+ capturedVariable.setValueFromSource(capturedValue);
1138
+ capturedValue = undefined;
1139
+ capturedVariable = undefined;
1140
+ });
1141
+ if (capturedValue.dataType !== node_opcua_variant_1.DataType.ExtensionObject) {
1142
+ postTasks0_InitializeVariable.push(task);
1143
+ }
1144
+ else {
1145
+ // do them later
1146
+ postTasks1_InitializeVariable.push(task);
1147
+ }
1148
+ }
1149
+ else {
1150
+ const task = (addressSpace2) => __awaiter(this, void 0, void 0, function* () {
1151
+ const dataTypeNode = capturedVariable.dataType;
1152
+ const valueRank = capturedVariable.valueRank;
1153
+ const value = makeDefaultVariant(addressSpace, dataTypeNode, valueRank);
1154
+ if (value) {
1155
+ if (false && doDebug) {
1156
+ debugLog("2 setting value to ", capturedVariable.nodeId.toString(), value);
1157
+ }
1158
+ if (value.dataType === node_opcua_variant_1.DataType.Null) {
1159
+ capturedVariable.setValueFromSource(value, node_opcua_basic_types_1.StatusCodes.BadWaitingForInitialData);
1160
+ }
1161
+ else {
1162
+ capturedVariable.setValueFromSource(value, node_opcua_basic_types_1.StatusCodes.Good);
1163
+ }
1164
+ }
1165
+ capturedVariable = undefined;
1166
+ });
1167
+ postTasks0_InitializeVariable.push(task);
1168
+ }
1169
+ this.obj.value = undefined;
1170
+ capturedVariable = _internal_createNode(this.obj);
1171
+ },
1172
+ parser: {
1173
+ DisplayName: {
1174
+ finish() {
1175
+ this.parent.obj.displayName = this.text;
1176
+ }
1177
+ },
1178
+ Description: {
1179
+ finish() {
1180
+ this.parent.obj.description = this.text;
1181
+ }
1182
+ },
1183
+ References: references_parser,
1184
+ Value: state_Variant
1185
+ }
1186
+ };
1187
+ const state_UAVariableType = {
1188
+ init(name, attrs) {
1189
+ _perform();
1190
+ this.obj = {};
1191
+ this.obj.isAbstract = ec.coerceBoolean(attrs.IsAbstract);
1192
+ this.obj.nodeClass = node_opcua_data_model_1.NodeClass.VariableType;
1193
+ this.obj.browseName = convertQualifiedName(attrs.BrowseName);
1194
+ this.obj.parentNodeId = attrs.ParentNodeId || null;
1195
+ this.obj.dataType = convertToNodeId(attrs.DataType) || null;
1196
+ this.obj.valueRank = ec.coerceInt32(attrs.ValueRank) || -1;
1197
+ this.obj.arrayDimensions = this.obj.valueRank <= 0 ? null : stringToUInt32Array(attrs.ArrayDimensions);
1198
+ this.obj.minimumSamplingInterval = attrs.MinimumSamplingInterval ? parseInt(attrs.MinimumSamplingInterval, 10) : 0;
1199
+ this.obj.historizing = false;
1200
+ this.obj.nodeId = convertToNodeId(attrs.NodeId) || null;
1201
+ this.isDraft = attrs.ReleaseStatus === "Draft";
1202
+ this.isDeprecated = attrs.ReleaseStatus === "Deprecated";
1203
+ },
1204
+ finish() {
1205
+ if (canIngore({ isDraft: this.isDraft, isDeprecated: this.isDeprecated }, this.obj)) {
1206
+ return;
1207
+ }
1208
+ try {
1209
+ _internal_createNode(this.obj);
1210
+ } /* istanbul ignore next */
1211
+ catch (err) {
1212
+ this.obj.addressSpace = null;
1213
+ // tslint:disable:no-console
1214
+ console.warn(" Cannot create object", JSON.stringify(this.obj, null, " "));
1215
+ throw err;
1216
+ }
1217
+ },
1218
+ parser: {
1219
+ DisplayName: {
1220
+ finish() {
1221
+ this.parent.obj.displayName = this.text;
1222
+ }
1223
+ },
1224
+ Description: {
1225
+ finish() {
1226
+ this.parent.obj.description = this.text;
1227
+ }
1228
+ },
1229
+ References: references_parser,
1230
+ Value: state_Variant
1231
+ }
1232
+ };
1233
+ const state_UAMethod = {
1234
+ init(name, attrs) {
1235
+ _perform();
1236
+ this.obj = {};
1237
+ this.obj.nodeClass = node_opcua_data_model_1.NodeClass.Method;
1238
+ // MethodDeclarationId
1239
+ // ParentNodeId
1240
+ this.obj.browseName = convertQualifiedName(attrs.BrowseName);
1241
+ this.obj.parentNodeId = attrs.ParentNodeId || null;
1242
+ this.obj.nodeId = convertToNodeId(attrs.NodeId) || null;
1243
+ this.obj.methodDeclarationId = attrs.MethodDeclarationId ? _translateNodeId(attrs.MethodDeclarationId) : null;
1244
+ this.isDraft = attrs.ReleaseStatus === "Draft";
1245
+ this.isDeprecated = attrs.ReleaseStatus === "Deprecated";
1246
+ },
1247
+ finish() {
1248
+ if (canIngore({ isDraft: this.isDraft, isDeprecated: this.isDeprecated }, this.obj)) {
1249
+ return;
1250
+ }
1251
+ _internal_createNode(this.obj);
1252
+ },
1253
+ parser: {
1254
+ DisplayName: {
1255
+ finish() {
1256
+ this.parent.obj.displayName = this.text;
1257
+ }
1258
+ },
1259
+ References: references_parser
1260
+ }
1261
+ };
1262
+ const state_ModelTableEntry = new node_opcua_xml2json_1.ReaderState({
1263
+ // ModelTableEntry
1264
+ init() {
1265
+ this._requiredModels = [];
1266
+ },
1267
+ parser: {
1268
+ RequiredModel: {
1269
+ init(name, attrs) {
1270
+ const modelUri = attrs.ModelUri;
1271
+ const version = attrs.Version;
1272
+ const publicationDate = new Date(Date.parse(attrs.PublicationDate));
1273
+ this.parent._requiredModels.push({ modelUri, version, publicationDate });
1274
+ },
1275
+ finish() {
1276
+ /** */
1277
+ }
1278
+ }
1279
+ },
1280
+ finish() {
1281
+ const modelUri = this.attrs.ModelUri; // //"http://opcfoundation.org/UA/"
1282
+ const version = this.attrs.Version; // 1.04
1283
+ const publicationDate = this.attrs.PublicationDate ? new Date(Date.parse(this.attrs.PublicationDate)) : undefined; // "2018-05-15T00:00:00Z" "
1284
+ // optional,
1285
+ const symbolicName = this.attrs.SymbolicName;
1286
+ const accessRestrictions = this.attrs.AccessRestrictions;
1287
+ const model = {
1288
+ accessRestrictions,
1289
+ modelUri,
1290
+ publicationDate,
1291
+ requiredModels: this._requiredModels,
1292
+ symbolicName,
1293
+ version
1294
+ };
1295
+ const namespace = _add_namespace(model);
1296
+ models.push(model);
1297
+ }
1298
+ });
1299
+ function _updateTranslationTable() {
1300
+ _register_namespace_uri_in_translation_table("http://opcfoundation.org/UA/");
1301
+ for (const namespaceUri of _namespaceUris) {
1302
+ _register_namespace_uri_in_translation_table(namespaceUri);
1303
+ }
1304
+ }
1305
+ function _perform() {
1306
+ if (performedCalled)
1307
+ return;
1308
+ performedCalled = true;
1309
+ /**special case for old nodeset file version 1.02 where no models exists */
1310
+ if (models.length === 0) {
1311
+ for (const namespaceuri of _namespaceUris) {
1312
+ const existingNamespace = addressSpace1.getNamespace(namespaceuri);
1313
+ if (existingNamespace) {
1314
+ continue;
1315
+ }
1316
+ _add_namespace({
1317
+ modelUri: namespaceuri,
1318
+ version: "1.0.0",
1319
+ requiredModels: []
1320
+ });
1321
+ }
1322
+ }
1323
+ _updateTranslationTable();
1324
+ }
1325
+ // state_ModelTableEntry.parser["RequiredModel"] = state_ModelTableEntry;
1326
+ let _namespaceUris = [];
1327
+ const state_0 = {
1328
+ parser: {
1329
+ Aliases: {
1330
+ init() {
1331
+ _perform();
1332
+ },
1333
+ parser: { Alias: state_Alias }
1334
+ },
1335
+ NamespaceUris: {
1336
+ init() {
1337
+ //
1338
+ _namespaceUris = [];
1339
+ },
1340
+ parser: {
1341
+ Uri: {
1342
+ finish() {
1343
+ _namespaceUris.push(this.text);
1344
+ }
1345
+ }
1346
+ },
1347
+ finish() {
1348
+ // verify that requested namespaces are already loaded or abort with a message
1349
+ }
1350
+ },
1351
+ Models: {
1352
+ // ModelTable
1353
+ init(name, attrs) {
1354
+ /* */
1355
+ },
1356
+ parser: {
1357
+ Model: state_ModelTableEntry
1358
+ },
1359
+ finish() {
1360
+ /** */
1361
+ }
1362
+ },
1363
+ UADataType: state_UADataType,
1364
+ UAMethod: state_UAMethod,
1365
+ UAObject: state_UAObject,
1366
+ UAObjectType: state_UAObjectType,
1367
+ UAReferenceType: state_UAReferenceType,
1368
+ UAVariable: state_UAVariable,
1369
+ UAVariableType: state_UAVariableType
1370
+ }
1371
+ };
1372
+ const parser = new node_opcua_xml2json_1.Xml2Json(state_0);
1373
+ function terminate(callback) {
1374
+ var _a, _b, _c;
1375
+ make_back_references(addressSpace1);
1376
+ // setting up Server_NamespaceArray
1377
+ if ((_c = (_b = (_a = addressSpace1.rootFolder) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.server) === null || _c === void 0 ? void 0 : _c.namespaceArray) {
1378
+ addressSpace1.rootFolder.objects.server.namespaceArray.setValueFromSource({
1379
+ arrayType: node_opcua_variant_1.VariantArrayType.Array,
1380
+ dataType: node_opcua_variant_1.DataType.String,
1381
+ value: addressSpace1.getNamespaceArray().map((ns) => ns.namespaceUri)
1382
+ });
1383
+ // istanbul ignore next
1384
+ if (doDebug) {
1385
+ debugLog("addressSpace NS = ", addressSpace1.rootFolder.objects.server.namespaceArray.readValue().value.value.join(" "));
1386
+ }
1387
+ }
1388
+ doDebug &&
1389
+ debugLog(chalk.bgGreenBright("Performing post loading tasks -------------------------------------------") +
1390
+ chalk.green("DONE"));
1391
+ function performPostLoadingTasks(tasks) {
1392
+ return __awaiter(this, void 0, void 0, function* () {
1393
+ for (const task of tasks) {
1394
+ try {
1395
+ yield task(addressSpace1);
1396
+ }
1397
+ catch (err) {
1398
+ // istanbul ignore next
1399
+ // tslint:disable:no-console
1400
+ if (err instanceof Error) {
1401
+ console.log(" performPostLoadingTasks Err => ", err.message, "\n", err);
1402
+ }
1403
+ yield task(addressSpace1);
1404
+ }
1405
+ }
1406
+ tasks.splice(0);
1407
+ });
1408
+ }
1409
+ function finalSteps() {
1410
+ return __awaiter(this, void 0, void 0, function* () {
1411
+ /// ----------------------------------------------------------------------------------------
1412
+ // perform post task
1413
+ doDebug && debugLog(chalk.bgGreenBright("Performing post loading tasks -------------------------------------------"));
1414
+ yield performPostLoadingTasks(postTasks);
1415
+ doDebug &&
1416
+ debugLog(chalk.bgGreenBright("Performing post loading task: Initializing Simple Variables ---------------------"));
1417
+ yield performPostLoadingTasks(postTasks0_InitializeVariable);
1418
+ doDebug && debugLog(chalk.bgGreenBright("Performing DataType extraction -------------------------------------------"));
1419
+ (0, node_opcua_assert_1.assert)(!addressSpace1.suspendBackReference);
1420
+ yield (0, ensure_datatype_extracted_1.ensureDatatypeExtracted)(addressSpace);
1421
+ const dataTypeManager = addressSpace.getDataTypeManager();
1422
+ /// ----------------------------------------------------------------------------------------
1423
+ doDebug && debugLog(chalk.bgGreenBright("DataType extraction done ") + chalk.green("DONE"));
1424
+ for (const { name, dataTypeNodeId } of pendingSimpleTypeToRegister) {
1425
+ if (dataTypeNodeId.namespace === 0) {
1426
+ continue;
1427
+ }
1428
+ const dataTypeFactory = dataTypeManager.getDataTypeFactoryForNamespace(dataTypeNodeId.namespace);
1429
+ }
1430
+ pendingSimpleTypeToRegister.splice(0);
1431
+ doDebug && debugLog(chalk.bgGreenBright("Performing post loading task: Decoding Pojo String (parsing XML objects) -"));
1432
+ yield performPostLoadingTasks(postTasks0_DecodePojoString);
1433
+ doDebug &&
1434
+ debugLog(chalk.bgGreenBright("Performing post loading task: Initializing Complex Variables ---------------------"));
1435
+ yield performPostLoadingTasks(postTasks1_InitializeVariable);
1436
+ doDebug && debugLog(chalk.bgGreenBright("Performing post loading tasks: (assigning Extension Object to Variables) -"));
1437
+ yield performPostLoadingTasks(postTasks2_AssignedExtensionObjectToDataValue);
1438
+ doDebug && debugLog(chalk.bgGreenBright("Performing post variable initialization ---------------------"));
1439
+ (0, namespace_post_step_1.promoteObjectsAndVariables)(addressSpace);
1440
+ });
1441
+ }
1442
+ finalSteps()
1443
+ .then(() => callback())
1444
+ .catch((err1) => {
1445
+ console.log("Error ", (0, node_opcua_assert_1.renderError)(err1));
1446
+ callback(err1);
1447
+ });
1448
+ }
1449
+ function addNodeSet(xmlData, callback1) {
1450
+ _reset_namespace_translation();
1451
+ parser.parseString(xmlData, callback1);
1452
+ }
1453
+ return {
1454
+ addNodeSet,
1455
+ terminate
1456
+ };
1457
+ }
1458
+ class NodeSetLoader {
1459
+ constructor(addressSpace, options) {
1460
+ this.options = options;
1461
+ this._s = makeNodeSetParserEngine(addressSpace, options || {});
1462
+ }
1463
+ addNodeSet(xmlData, callback) {
1464
+ if (!callback) {
1465
+ throw new Error("Expecting callback function");
1466
+ }
1467
+ return this._s.addNodeSet(xmlData, callback);
1468
+ }
1469
+ addNodeSetAsync(xmlData) {
1470
+ return __awaiter(this, void 0, void 0, function* () {
1471
+ return (0, util_1.promisify)(this.addNodeSet).call(this, xmlData);
1472
+ });
1473
+ }
1474
+ terminate(callback) {
1475
+ this._s.terminate(callback);
1476
+ }
1477
+ terminateAsync() {
1478
+ return __awaiter(this, void 0, void 0, function* () {
1479
+ return (0, util_1.promisify)(this.terminate).call(this);
1480
+ });
1481
+ }
1482
+ }
1483
+ exports.NodeSetLoader = NodeSetLoader;
1484
+ //# sourceMappingURL=load_nodeset2.js.map