node-opcua-address-space 2.51.0

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