node-opcua-address-space 2.70.3 → 2.71.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 (369) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
  4. package/dist/source/continuation_points/continuation_point_manager.js +195 -195
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +34 -34
  8. package/dist/source/helpers/argument_list.js +285 -285
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +70 -70
  11. package/dist/source/helpers/check_event_clause.d.ts +17 -17
  12. package/dist/source/helpers/check_event_clause.js +52 -52
  13. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  14. package/dist/source/helpers/coerce_enum_value.js +33 -33
  15. package/dist/source/helpers/dump_tools.d.ts +14 -14
  16. package/dist/source/helpers/dump_tools.js +78 -78
  17. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  18. package/dist/source/helpers/ensure_secure_access.js +76 -76
  19. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  20. package/dist/source/helpers/make_optionals_map.js +29 -29
  21. package/dist/source/helpers/multiform_func.d.ts +11 -11
  22. package/dist/source/helpers/multiform_func.js +73 -73
  23. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  24. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  25. package/dist/source/index.d.ts +40 -40
  26. package/dist/source/index.js +66 -66
  27. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -12
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  29. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +23 -0
  30. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +3 -0
  31. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +1 -0
  32. package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +6 -0
  33. package/dist/source/interfaces/data_access/ua_discrete_item.js +3 -0
  34. package/dist/source/interfaces/data_access/ua_discrete_item.js.map +1 -0
  35. package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +25 -0
  36. package/dist/source/interfaces/data_access/ua_multistate_discrete.js +3 -0
  37. package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +1 -0
  38. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  39. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  40. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +27 -0
  41. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +3 -0
  42. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +1 -0
  43. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  44. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  45. package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +17 -0
  46. package/dist/source/interfaces/data_access/ua_two_state_discrete.js +3 -0
  47. package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +1 -0
  48. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  49. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  50. package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +19 -0
  51. package/dist/source/interfaces/data_access/ua_y_array_item.js +3 -0
  52. package/dist/source/interfaces/data_access/ua_y_array_item.js.map +1 -0
  53. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  54. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  55. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +11 -0
  56. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +3 -0
  57. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +1 -0
  58. package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +70 -0
  59. package/dist/source/interfaces/state_machine/finite_state_machine.js +3 -0
  60. package/dist/source/interfaces/state_machine/finite_state_machine.js.map +1 -0
  61. package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +74 -0
  62. package/dist/source/interfaces/state_machine/program_finite_state_machine.js +3 -0
  63. package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +1 -0
  64. package/dist/source/interfaces/state_machine/state_machine.d.ts +342 -0
  65. package/dist/source/interfaces/state_machine/state_machine.js +3 -0
  66. package/dist/source/interfaces/state_machine/state_machine.js.map +1 -0
  67. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  68. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  69. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  70. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  71. package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +18 -0
  72. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +3 -0
  73. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +1 -0
  74. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  75. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  76. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  77. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  78. package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +29 -0
  79. package/dist/source/interfaces/state_machine/ua_state_variable.js +3 -0
  80. package/dist/source/interfaces/state_machine/ua_state_variable.js.map +1 -0
  81. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  82. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  83. package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +26 -0
  84. package/dist/source/interfaces/state_machine/ua_two_state_variable.js +3 -0
  85. package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +1 -0
  86. package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +41 -0
  87. package/dist/source/interfaces/subscription_diagnostics_variable.js +3 -0
  88. package/dist/source/interfaces/subscription_diagnostics_variable.js.map +1 -0
  89. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  90. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  91. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  92. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  93. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  94. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  95. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  96. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  97. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  98. package/dist/source/loader/load_nodeset2.js +1464 -1464
  99. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  100. package/dist/source/loader/make_xml_extension_object_parser.js +315 -315
  101. package/dist/source/loader/namespace_post_step.d.ts +6 -6
  102. package/dist/source/loader/namespace_post_step.js +47 -47
  103. package/dist/source/loader/register_node_promoter.d.ts +3 -3
  104. package/dist/source/loader/register_node_promoter.js +9 -9
  105. package/dist/source/namespace.d.ts +6 -6
  106. package/dist/source/namespace.js +2 -2
  107. package/dist/source/namespace_alarm_and_condition.d.ts +24 -24
  108. package/dist/source/namespace_alarm_and_condition.js +2 -2
  109. package/dist/source/namespace_data_access.d.ts +42 -42
  110. package/dist/source/namespace_data_access.js +2 -2
  111. package/dist/source/namespace_machine_state.d.ts +7 -7
  112. package/dist/source/namespace_machine_state.js +2 -2
  113. package/dist/source/pseudo_session.d.ts +55 -55
  114. package/dist/source/pseudo_session.js +203 -203
  115. package/dist/source/session_context.d.ts +111 -111
  116. package/dist/source/session_context.js +265 -265
  117. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  118. package/dist/source/set_namespace_meta_data.js +59 -59
  119. package/dist/source/ua_root_folder.d.ts +9 -9
  120. package/dist/source/ua_root_folder.js +2 -2
  121. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  122. package/dist/source/ua_two_state_variable_ex.js +2 -2
  123. package/dist/source/xml_writer.d.ts +9 -9
  124. package/dist/source/xml_writer.js +2 -2
  125. package/dist/src/address_space.d.ts +392 -392
  126. package/dist/src/address_space.js +1387 -1387
  127. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  128. package/dist/src/address_space_change_event_tools.js +149 -149
  129. package/dist/src/address_space_private.d.ts +43 -43
  130. package/dist/src/address_space_private.js +2 -2
  131. package/dist/src/alarms_and_conditions/base_event_type.d.ts +26 -0
  132. package/dist/src/alarms_and_conditions/base_event_type.js +41 -0
  133. package/dist/src/alarms_and_conditions/base_event_type.js.map +1 -0
  134. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -4
  135. package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
  136. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  137. package/dist/src/alarms_and_conditions/condition.js +80 -80
  138. package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
  139. package/dist/src/alarms_and_conditions/condition_info.js +54 -54
  140. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
  141. package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
  142. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
  143. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
  144. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
  145. package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
  146. package/dist/src/alarms_and_conditions/index.d.ts +18 -18
  147. package/dist/src/alarms_and_conditions/index.js +34 -34
  148. package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +22 -0
  149. package/dist/src/alarms_and_conditions/shelving_state_machine.js +241 -0
  150. package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +1 -0
  151. package/dist/src/alarms_and_conditions/trip_alarm.d.ts +16 -0
  152. package/dist/src/alarms_and_conditions/trip_alarm.js +21 -0
  153. package/dist/src/alarms_and_conditions/trip_alarm.js.map +1 -0
  154. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +54 -0
  155. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +255 -0
  156. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +1 -0
  157. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +62 -62
  158. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  159. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +138 -0
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +460 -0
  161. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +1 -0
  162. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +118 -118
  163. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
  164. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -29
  165. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  166. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +35 -0
  167. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +32 -0
  168. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +1 -0
  169. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +21 -21
  170. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +25 -25
  171. package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +191 -0
  172. package/dist/src/alarms_and_conditions/ua_condition_base.js +1029 -0
  173. package/dist/src/alarms_and_conditions/ua_condition_base.js.map +1 -0
  174. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +182 -182
  175. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1022 -1022
  176. package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +11 -0
  177. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +58 -0
  178. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +1 -0
  179. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +17 -17
  180. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
  181. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +24 -0
  182. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +59 -0
  183. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +1 -0
  184. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +27 -27
  185. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  186. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +14 -0
  187. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +17 -0
  188. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +1 -0
  189. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +9 -9
  190. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  191. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +22 -0
  192. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +87 -0
  193. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +1 -0
  194. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +38 -38
  195. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  196. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +6 -0
  197. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +11 -0
  198. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +1 -0
  199. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -10
  200. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  201. package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +76 -0
  202. package/dist/src/alarms_and_conditions/ua_limit_alarm.js +237 -0
  203. package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +1 -0
  204. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +97 -97
  205. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  206. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +27 -0
  207. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +62 -0
  208. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +1 -0
  209. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +28 -28
  210. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  211. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +49 -0
  212. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +176 -0
  213. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +1 -0
  214. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +25 -25
  215. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  216. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +47 -0
  217. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +151 -0
  218. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +1 -0
  219. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +39 -39
  220. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +135 -135
  221. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +16 -0
  222. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +18 -0
  223. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +1 -0
  224. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +16 -16
  225. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  226. package/dist/src/apply_condition_refresh.d.ts +6 -6
  227. package/dist/src/apply_condition_refresh.js +27 -27
  228. package/dist/src/base_node.d.ts +270 -0
  229. package/dist/src/base_node.js +1299 -0
  230. package/dist/src/base_node.js.map +1 -0
  231. package/dist/src/base_node_impl.d.ts +281 -281
  232. package/dist/src/base_node_impl.js +1395 -1395
  233. package/dist/src/base_node_private.d.ts +61 -61
  234. package/dist/src/base_node_private.js +705 -705
  235. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  236. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  237. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  238. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  239. package/dist/src/data_access/ua_analog_item.d.ts +13 -0
  240. package/dist/src/data_access/ua_analog_item.js +37 -0
  241. package/dist/src/data_access/ua_analog_item.js.map +1 -0
  242. package/dist/src/data_access/ua_data_item.d.ts +16 -0
  243. package/dist/src/data_access/ua_data_item.js +66 -0
  244. package/dist/src/data_access/ua_data_item.js.map +1 -0
  245. package/dist/src/data_access/ua_multistate_discrete.d.ts +24 -0
  246. package/dist/src/data_access/ua_multistate_discrete.js +132 -0
  247. package/dist/src/data_access/ua_multistate_discrete.js.map +1 -0
  248. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  249. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  250. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -51
  251. package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
  252. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
  253. package/dist/src/data_access/ua_two_state_discrete.js +153 -153
  254. package/dist/src/event_data.d.ts +29 -29
  255. package/dist/src/event_data.js +95 -95
  256. package/dist/src/extension_object_array_node.d.ts +61 -61
  257. package/dist/src/extension_object_array_node.js +276 -276
  258. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  259. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  260. package/dist/src/index_current.d.ts +45 -45
  261. package/dist/src/index_current.js +77 -77
  262. package/dist/src/namespace.d.ts +472 -0
  263. package/dist/src/namespace.js +1759 -0
  264. package/dist/src/namespace.js.map +1 -0
  265. package/dist/src/namespace_impl.d.ts +457 -457
  266. package/dist/src/namespace_impl.js +1733 -1733
  267. package/dist/src/namespace_private.d.ts +21 -21
  268. package/dist/src/namespace_private.js +32 -32
  269. package/dist/src/nodeid_manager.d.ts +36 -36
  270. package/dist/src/nodeid_manager.js +197 -197
  271. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  272. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  273. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  274. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  275. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  276. package/dist/src/nodeset_tools/nodeset_to_xml.js +1143 -1143
  277. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  278. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  279. package/dist/src/reference.d.ts +43 -0
  280. package/dist/src/reference.js +138 -0
  281. package/dist/src/reference.js.map +1 -0
  282. package/dist/src/reference_impl.d.ts +43 -43
  283. package/dist/src/reference_impl.js +139 -139
  284. package/dist/src/role_permissions.d.ts +2 -2
  285. package/dist/src/role_permissions.js +10 -10
  286. package/dist/src/session_context.d.ts +4 -0
  287. package/dist/src/session_context.js +9 -0
  288. package/dist/src/session_context.js.map +1 -0
  289. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  290. package/dist/src/state_machine/finite_state_machine.js +353 -353
  291. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -34
  292. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  293. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  294. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  295. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  296. package/dist/src/tool_isSupertypeOf.js +108 -108
  297. package/dist/src/ua_condition_type.d.ts +8 -8
  298. package/dist/src/ua_condition_type.js +2 -2
  299. package/dist/src/ua_data_type.d.ts +81 -0
  300. package/dist/src/ua_data_type.js +259 -0
  301. package/dist/src/ua_data_type.js.map +1 -0
  302. package/dist/src/ua_data_type_impl.d.ts +93 -93
  303. package/dist/src/ua_data_type_impl.js +368 -368
  304. package/dist/src/ua_method.d.ts +33 -0
  305. package/dist/src/ua_method.js +194 -0
  306. package/dist/src/ua_method.js.map +1 -0
  307. package/dist/src/ua_method_impl.d.ts +41 -41
  308. package/dist/src/ua_method_impl.js +208 -208
  309. package/dist/src/ua_object.d.ts +27 -0
  310. package/dist/src/ua_object.js +153 -0
  311. package/dist/src/ua_object.js.map +1 -0
  312. package/dist/src/ua_object_impl.d.ts +33 -33
  313. package/dist/src/ua_object_impl.js +156 -156
  314. package/dist/src/ua_object_type.d.ts +49 -0
  315. package/dist/src/ua_object_type.js +123 -0
  316. package/dist/src/ua_object_type.js.map +1 -0
  317. package/dist/src/ua_object_type_impl.d.ts +48 -48
  318. package/dist/src/ua_object_type_impl.js +124 -124
  319. package/dist/src/ua_reference_type.d.ts +31 -0
  320. package/dist/src/ua_reference_type.js +108 -0
  321. package/dist/src/ua_reference_type.js.map +1 -0
  322. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  323. package/dist/src/ua_reference_type_impl.js +139 -139
  324. package/dist/src/ua_variable.d.ts +346 -0
  325. package/dist/src/ua_variable.js +1651 -0
  326. package/dist/src/ua_variable.js.map +1 -0
  327. package/dist/src/ua_variable_impl.d.ts +351 -351
  328. package/dist/src/ua_variable_impl.js +1604 -1604
  329. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  330. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  331. package/dist/src/ua_variable_type.d.ts +57 -0
  332. package/dist/src/ua_variable_type.js +530 -0
  333. package/dist/src/ua_variable_type.js.map +1 -0
  334. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  335. package/dist/src/ua_variable_type_impl.js +570 -564
  336. package/dist/src/ua_variable_type_impl.js.map +1 -1
  337. package/dist/src/ua_view.d.ts +16 -0
  338. package/dist/src/ua_view.js +41 -0
  339. package/dist/src/ua_view.js.map +1 -0
  340. package/dist/src/ua_view_impl.d.ts +15 -15
  341. package/dist/src/ua_view_impl.js +36 -36
  342. package/distHelpers/add_event_generator_object.d.ts +3 -3
  343. package/distHelpers/add_event_generator_object.js +65 -65
  344. package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
  345. package/distHelpers/alarms_and_conditions_demo.js +114 -114
  346. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  347. package/distHelpers/assertHasMatchingReference.js +40 -40
  348. package/distHelpers/boiler_system.d.ts +113 -113
  349. package/distHelpers/boiler_system.js +395 -395
  350. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  351. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  352. package/distHelpers/date_utils.d.ts +3 -3
  353. package/distHelpers/date_utils.js +9 -9
  354. package/distHelpers/dump_statemachine.js +127 -127
  355. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  356. package/distHelpers/get_address_space_fixture.js +30 -30
  357. package/distHelpers/get_mini_address_space.d.ts +7 -7
  358. package/distHelpers/get_mini_address_space.js +36 -36
  359. package/distHelpers/index.d.ts +12 -12
  360. package/distHelpers/index.js +28 -28
  361. package/distHelpers/mock_session.d.ts +14 -14
  362. package/distHelpers/mock_session.js +25 -25
  363. package/distNodeJS/generate_address_space.d.ts +4 -4
  364. package/distNodeJS/generate_address_space.js +41 -41
  365. package/distNodeJS/index.d.ts +1 -1
  366. package/distNodeJS/index.js +17 -17
  367. package/package.json +38 -38
  368. package/src/ua_variable_type_impl.ts +11 -4
  369. package/test_helpers/test_fixtures/eurange_issue.xml +73 -0
@@ -1,17 +1,17 @@
1
- /**
2
- * @module node-opcua-address-space
3
- */
4
- import { NodeId, NodeIdLike } from "node-opcua-nodeid";
5
- import { BaseNode, UADataType, UAObjectType, UAReferenceType, UAVariableType } from "node-opcua-address-space-base";
6
- import { BaseNodeImpl } from "./base_node_impl";
7
- export declare type BaseNodeConstructor<T extends BaseNode> = new () => T;
8
- export declare type MemberFuncValue<T, P, R> = (this: T, param: P) => R;
9
- export declare type IsSupertypeOfFunc<T extends UAType> = (this: T, baseType: T) => boolean;
10
- export declare type UAType = UAReferenceType | UADataType | UAObjectType | UAVariableType;
11
- export declare function construct_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): IsSupertypeOfFunc<T>;
12
- export declare function construct_slow_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): (this: T, baseType: T | NodeIdLike) => boolean;
13
- /**
14
- * returns the nodeId of the Type which is the super type of this
15
- */
16
- export declare function get_subtypeOf<T extends BaseNode>(this: T): NodeId | null;
17
- export declare function get_subtypeOfObj(this: BaseNode): BaseNode | null;
1
+ /**
2
+ * @module node-opcua-address-space
3
+ */
4
+ import { NodeId, NodeIdLike } from "node-opcua-nodeid";
5
+ import { BaseNode, UADataType, UAObjectType, UAReferenceType, UAVariableType } from "node-opcua-address-space-base";
6
+ import { BaseNodeImpl } from "./base_node_impl";
7
+ export declare type BaseNodeConstructor<T extends BaseNode> = new () => T;
8
+ export declare type MemberFuncValue<T, P, R> = (this: T, param: P) => R;
9
+ export declare type IsSupertypeOfFunc<T extends UAType> = (this: T, baseType: T) => boolean;
10
+ export declare type UAType = UAReferenceType | UADataType | UAObjectType | UAVariableType;
11
+ export declare function construct_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): IsSupertypeOfFunc<T>;
12
+ export declare function construct_slow_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): (this: T, baseType: T | NodeIdLike) => boolean;
13
+ /**
14
+ * returns the nodeId of the Type which is the super type of this
15
+ */
16
+ export declare function get_subtypeOf<T extends BaseNode>(this: T): NodeId | null;
17
+ export declare function get_subtypeOfObj(this: BaseNode): BaseNode | null;
@@ -1,109 +1,109 @@
1
- "use strict";
2
- /**
3
- * @module node-opcua-address-space
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.get_subtypeOfObj = exports.get_subtypeOf = exports.construct_slow_isSupertypeOf = exports.construct_isSupertypeOf = void 0;
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_nodeid_1 = require("node-opcua-nodeid");
9
- const node_opcua_nodeid_2 = require("node-opcua-nodeid");
10
- const base_node_private_1 = require("./base_node_private");
11
- const reference_impl_1 = require("./reference_impl");
12
- const HasSubTypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasSubtype");
13
- function _filterSubType(reference) {
14
- return (0, node_opcua_nodeid_2.sameNodeId)(reference.referenceType, HasSubTypeNodeId) && !reference.isForward;
15
- }
16
- function _slow_isSupertypeOf(Class, baseType) {
17
- if (!(baseType instanceof Class)) {
18
- const node = this.addressSpace.findNode(baseType);
19
- if (!node || !(node instanceof Class)) {
20
- throw new Error("Invalid argument");
21
- }
22
- return _slow_isSupertypeOf.call(this, Class, node);
23
- }
24
- (0, node_opcua_assert_1.assert)(this instanceof Class);
25
- (0, node_opcua_assert_1.assert)(baseType instanceof Class, " Object must have same type");
26
- (0, node_opcua_assert_1.assert)(this.addressSpace);
27
- if ((0, node_opcua_nodeid_2.sameNodeId)(this.nodeId, baseType.nodeId)) {
28
- return true;
29
- }
30
- const references = this.allReferences();
31
- const subTypes = references.filter(_filterSubType);
32
- (0, node_opcua_assert_1.assert)(subTypes.length <= 1, "should have zero or one subtype no more");
33
- for (const subType1 of subTypes) {
34
- const subTypeId = subType1.nodeId;
35
- const subTypeNode = this.addressSpace.findNode(subTypeId);
36
- // istanbul ignore next
37
- if (!subTypeNode) {
38
- throw new Error("Cannot find object with nodeId " + subTypeId.toString());
39
- }
40
- if ((0, node_opcua_nodeid_2.sameNodeId)(subTypeNode.nodeId, baseType.nodeId)) {
41
- return true;
42
- }
43
- else {
44
- if (_slow_isSupertypeOf.call(subTypeNode, Class, baseType)) {
45
- return true;
46
- }
47
- }
48
- }
49
- return false;
50
- }
51
- // http://jsperf.com/underscore-js-memoize-refactor-test
52
- // http://addyosmani.com/blog/faster-javascript-memoization/
53
- function wrap_memoize(func, hashFunc) {
54
- if (undefined === hashFunc) {
55
- hashFunc = (_p) => _p.toString();
56
- }
57
- return function memoize(param) {
58
- if (!this.__cache) {
59
- this.__cache = {};
60
- }
61
- const hash = hashFunc.call(this, param);
62
- let cache_value = this.__cache[hash];
63
- if (cache_value === undefined) {
64
- cache_value = func.call(this, param);
65
- this.__cache[hash] = cache_value;
66
- }
67
- return cache_value;
68
- };
69
- }
70
- function hashBaseNode(e) {
71
- return e.nodeId.value.toString();
72
- }
73
- function construct_isSupertypeOf(Class) {
74
- return wrap_memoize(function (baseType) {
75
- (0, node_opcua_assert_1.assert)(baseType instanceof Class);
76
- (0, node_opcua_assert_1.assert)(this instanceof Class);
77
- return _slow_isSupertypeOf.call(this, Class, baseType);
78
- }, hashBaseNode);
79
- }
80
- exports.construct_isSupertypeOf = construct_isSupertypeOf;
81
- function construct_slow_isSupertypeOf(Class) {
82
- return function (baseType) {
83
- return _slow_isSupertypeOf.call(this, Class, baseType);
84
- };
85
- }
86
- exports.construct_slow_isSupertypeOf = construct_slow_isSupertypeOf;
87
- /**
88
- * returns the nodeId of the Type which is the super type of this
89
- */
90
- function get_subtypeOf() {
91
- const s = get_subtypeOfObj.call(this);
92
- return s ? s.nodeId : null;
93
- }
94
- exports.get_subtypeOf = get_subtypeOf;
95
- function get_subtypeOfObj() {
96
- const _cache = (0, base_node_private_1.BaseNode_getCache)(this);
97
- if (!_cache._subtypeOfObj) {
98
- const is_subtype_of_ref = this.findReference("HasSubtype", false);
99
- if (is_subtype_of_ref) {
100
- _cache._subtypeOfObj = reference_impl_1.ReferenceImpl.resolveReferenceNode(this.addressSpace, is_subtype_of_ref);
101
- }
102
- else {
103
- _cache._subtypeOfObj = null;
104
- }
105
- }
106
- return _cache._subtypeOfObj;
107
- }
108
- exports.get_subtypeOfObj = get_subtypeOfObj;
1
+ "use strict";
2
+ /**
3
+ * @module node-opcua-address-space
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.get_subtypeOfObj = exports.get_subtypeOf = exports.construct_slow_isSupertypeOf = exports.construct_isSupertypeOf = void 0;
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
9
+ const node_opcua_nodeid_2 = require("node-opcua-nodeid");
10
+ const base_node_private_1 = require("./base_node_private");
11
+ const reference_impl_1 = require("./reference_impl");
12
+ const HasSubTypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasSubtype");
13
+ function _filterSubType(reference) {
14
+ return (0, node_opcua_nodeid_2.sameNodeId)(reference.referenceType, HasSubTypeNodeId) && !reference.isForward;
15
+ }
16
+ function _slow_isSupertypeOf(Class, baseType) {
17
+ if (!(baseType instanceof Class)) {
18
+ const node = this.addressSpace.findNode(baseType);
19
+ if (!node || !(node instanceof Class)) {
20
+ throw new Error("Invalid argument");
21
+ }
22
+ return _slow_isSupertypeOf.call(this, Class, node);
23
+ }
24
+ (0, node_opcua_assert_1.assert)(this instanceof Class);
25
+ (0, node_opcua_assert_1.assert)(baseType instanceof Class, " Object must have same type");
26
+ (0, node_opcua_assert_1.assert)(this.addressSpace);
27
+ if ((0, node_opcua_nodeid_2.sameNodeId)(this.nodeId, baseType.nodeId)) {
28
+ return true;
29
+ }
30
+ const references = this.allReferences();
31
+ const subTypes = references.filter(_filterSubType);
32
+ (0, node_opcua_assert_1.assert)(subTypes.length <= 1, "should have zero or one subtype no more");
33
+ for (const subType1 of subTypes) {
34
+ const subTypeId = subType1.nodeId;
35
+ const subTypeNode = this.addressSpace.findNode(subTypeId);
36
+ // istanbul ignore next
37
+ if (!subTypeNode) {
38
+ throw new Error("Cannot find object with nodeId " + subTypeId.toString());
39
+ }
40
+ if ((0, node_opcua_nodeid_2.sameNodeId)(subTypeNode.nodeId, baseType.nodeId)) {
41
+ return true;
42
+ }
43
+ else {
44
+ if (_slow_isSupertypeOf.call(subTypeNode, Class, baseType)) {
45
+ return true;
46
+ }
47
+ }
48
+ }
49
+ return false;
50
+ }
51
+ // http://jsperf.com/underscore-js-memoize-refactor-test
52
+ // http://addyosmani.com/blog/faster-javascript-memoization/
53
+ function wrap_memoize(func, hashFunc) {
54
+ if (undefined === hashFunc) {
55
+ hashFunc = (_p) => _p.toString();
56
+ }
57
+ return function memoize(param) {
58
+ if (!this.__cache) {
59
+ this.__cache = {};
60
+ }
61
+ const hash = hashFunc.call(this, param);
62
+ let cache_value = this.__cache[hash];
63
+ if (cache_value === undefined) {
64
+ cache_value = func.call(this, param);
65
+ this.__cache[hash] = cache_value;
66
+ }
67
+ return cache_value;
68
+ };
69
+ }
70
+ function hashBaseNode(e) {
71
+ return e.nodeId.value.toString();
72
+ }
73
+ function construct_isSupertypeOf(Class) {
74
+ return wrap_memoize(function (baseType) {
75
+ (0, node_opcua_assert_1.assert)(baseType instanceof Class);
76
+ (0, node_opcua_assert_1.assert)(this instanceof Class);
77
+ return _slow_isSupertypeOf.call(this, Class, baseType);
78
+ }, hashBaseNode);
79
+ }
80
+ exports.construct_isSupertypeOf = construct_isSupertypeOf;
81
+ function construct_slow_isSupertypeOf(Class) {
82
+ return function (baseType) {
83
+ return _slow_isSupertypeOf.call(this, Class, baseType);
84
+ };
85
+ }
86
+ exports.construct_slow_isSupertypeOf = construct_slow_isSupertypeOf;
87
+ /**
88
+ * returns the nodeId of the Type which is the super type of this
89
+ */
90
+ function get_subtypeOf() {
91
+ const s = get_subtypeOfObj.call(this);
92
+ return s ? s.nodeId : null;
93
+ }
94
+ exports.get_subtypeOf = get_subtypeOf;
95
+ function get_subtypeOfObj() {
96
+ const _cache = (0, base_node_private_1.BaseNode_getCache)(this);
97
+ if (!_cache._subtypeOfObj) {
98
+ const is_subtype_of_ref = this.findReference("HasSubtype", false);
99
+ if (is_subtype_of_ref) {
100
+ _cache._subtypeOfObj = reference_impl_1.ReferenceImpl.resolveReferenceNode(this.addressSpace, is_subtype_of_ref);
101
+ }
102
+ else {
103
+ _cache._subtypeOfObj = null;
104
+ }
105
+ }
106
+ return _cache._subtypeOfObj;
107
+ }
108
+ exports.get_subtypeOfObj = get_subtypeOfObj;
109
109
  //# sourceMappingURL=tool_isSupertypeOf.js.map
@@ -1,8 +1,8 @@
1
- import { UAMethod, UAObjectType } from "node-opcua-address-space-base";
2
- export interface UAConditionType extends UAObjectType {
3
- disable: UAMethod;
4
- enable: UAMethod;
5
- conditionRefresh: UAMethod;
6
- conditionRefresh2: UAMethod;
7
- addComment: UAMethod;
8
- }
1
+ import { UAMethod, UAObjectType } from "node-opcua-address-space-base";
2
+ export interface UAConditionType extends UAObjectType {
3
+ disable: UAMethod;
4
+ enable: UAMethod;
5
+ conditionRefresh: UAMethod;
6
+ conditionRefresh2: UAMethod;
7
+ addComment: UAMethod;
8
+ }
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=ua_condition_type.js.map
@@ -0,0 +1,81 @@
1
+ import { NodeClass } from "node-opcua-data-model";
2
+ import { AttributeIds } from "node-opcua-data-model";
3
+ import { DataValue } from "node-opcua-data-value";
4
+ import { ExtensionObject } from "node-opcua-extension-object";
5
+ import { ExpandedNodeId, NodeId } from "node-opcua-nodeid";
6
+ import { DataTypeDefinition } from "node-opcua-types";
7
+ import { DataType } from "node-opcua-variant";
8
+ import { SessionContext, UADataType as UADataTypePublic } from "../source";
9
+ import { BaseNode } from "./base_node";
10
+ import { ToStringOption } from "./base_node_private";
11
+ import * as tools from "./tool_isSupertypeOf";
12
+ import { UAObject } from "./ua_object";
13
+ import { StructuredTypeSchema } from "node-opcua-factory";
14
+ export declare type ExtensionObjectConstructor = new (options: any) => ExtensionObject;
15
+ export interface ExtensionObjectConstructorFuncWithSchema extends ExtensionObjectConstructor {
16
+ schema: StructuredTypeSchema;
17
+ possibleFields: string[];
18
+ encodingDefaultBinary: ExpandedNodeId;
19
+ encodingDefaultXml: ExpandedNodeId;
20
+ }
21
+ export interface UADataType {
22
+ _extensionObjectConstructor: ExtensionObjectConstructorFuncWithSchema;
23
+ }
24
+ export interface IEnumItem {
25
+ name: string;
26
+ value: number;
27
+ }
28
+ export interface EnumerationInfo {
29
+ nameIndex: {
30
+ [id: string]: IEnumItem;
31
+ };
32
+ valueIndex: {
33
+ [id: number]: IEnumItem;
34
+ };
35
+ }
36
+ export declare class UADataType extends BaseNode implements UADataTypePublic {
37
+ readonly nodeClass = NodeClass.DataType;
38
+ readonly definitionName: string;
39
+ readonly symbolicName: string;
40
+ /**
41
+ * returns true if this is a super type of baseType
42
+ *
43
+ * @example
44
+ *
45
+ * var dataTypeDouble = addressSpace.findDataType("Double");
46
+ * var dataTypeNumber = addressSpace.findDataType("Number");
47
+ * assert(dataTypeDouble.isSupertypeOf(dataTypeNumber));
48
+ * assert(!dataTypeNumber.isSupertypeOf(dataTypeDouble));
49
+ *
50
+ */
51
+ get subtypeOf(): NodeId | null;
52
+ get subtypeOfObj(): UADataTypePublic | null;
53
+ isSupertypeOf: tools.IsSupertypeOfFunc<UADataTypePublic>;
54
+ readonly isAbstract: boolean;
55
+ private enumStrings?;
56
+ private enumValues?;
57
+ private $definition?;
58
+ constructor(options: any);
59
+ get basicDataType(): DataType;
60
+ readAttribute(context: SessionContext | null, attributeId: AttributeIds): DataValue;
61
+ getEncodingDefinition(encoding_name: string): string | null;
62
+ getEncodingNode(encoding_name: string): UAObject | null;
63
+ getEncodingNodeId(encoding_name: string): ExpandedNodeId | null;
64
+ /**
65
+ * returns the encoding of this node's
66
+ * TODO objects have 2 encodings : XML and Binaries
67
+ */
68
+ get binaryEncoding(): BaseNode | null;
69
+ get binaryEncodingDefinition(): string | null;
70
+ get binaryEncodingNodeId(): ExpandedNodeId | null;
71
+ get xmlEncoding(): BaseNode | null;
72
+ get xmlEncodingNodeId(): ExpandedNodeId | null;
73
+ get xmlEncodingDefinition(): string | null;
74
+ get jsonEncoding(): BaseNode | null;
75
+ get jsonEncodingNodeId(): ExpandedNodeId | null;
76
+ _getEnumerationInfo(): EnumerationInfo;
77
+ _getDefinition(): DataTypeDefinition | null;
78
+ install_extra_properties(): void;
79
+ toString(): string;
80
+ }
81
+ export declare function DataType_toString(this: UADataType, options: ToStringOption): void;
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataType_toString = exports.UADataType = void 0;
4
+ /**
5
+ * @module node-opcua-address-space
6
+ */
7
+ const chalk = require("chalk");
8
+ const node_opcua_assert_1 = require("node-opcua-assert");
9
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
10
+ const node_opcua_data_model_2 = require("node-opcua-data-model");
11
+ const node_opcua_data_value_1 = require("node-opcua-data-value");
12
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
13
+ const node_opcua_numeric_range_1 = require("node-opcua-numeric-range");
14
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
15
+ const node_opcua_types_1 = require("node-opcua-types");
16
+ const node_opcua_variant_1 = require("node-opcua-variant");
17
+ const source_1 = require("../source");
18
+ const base_node_1 = require("./base_node");
19
+ const base_node_private_1 = require("./base_node_private");
20
+ const tools = require("./tool_isSupertypeOf");
21
+ const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
22
+ const tool_isSupertypeOf_2 = require("./tool_isSupertypeOf");
23
+ function findBasicDataType(dataType) {
24
+ if (dataType.nodeId.namespace === 0 && dataType.nodeId.value <= 25) {
25
+ // we have a well-known DataType
26
+ return dataType.nodeId.value;
27
+ }
28
+ return findBasicDataType(dataType.subtypeOfObj);
29
+ }
30
+ class UADataType extends base_node_1.BaseNode {
31
+ constructor(options) {
32
+ super(options);
33
+ this.nodeClass = node_opcua_data_model_1.NodeClass.DataType;
34
+ this.definitionName = "";
35
+ this.isSupertypeOf = tools.construct_isSupertypeOf(UADataType);
36
+ this.$definition = options.$definition;
37
+ this.isAbstract = options.isAbstract === null ? false : options.isAbstract;
38
+ this.symbolicName = options.symbolicName || this.browseName.name;
39
+ }
40
+ /**
41
+ * returns true if this is a super type of baseType
42
+ *
43
+ * @example
44
+ *
45
+ * var dataTypeDouble = addressSpace.findDataType("Double");
46
+ * var dataTypeNumber = addressSpace.findDataType("Number");
47
+ * assert(dataTypeDouble.isSupertypeOf(dataTypeNumber));
48
+ * assert(!dataTypeNumber.isSupertypeOf(dataTypeDouble));
49
+ *
50
+ */
51
+ get subtypeOf() {
52
+ return tool_isSupertypeOf_1.get_subtypeOf.call(this);
53
+ }
54
+ get subtypeOfObj() {
55
+ return tool_isSupertypeOf_2.get_subtypeOfObj.call(this);
56
+ }
57
+ get basicDataType() {
58
+ return findBasicDataType(this);
59
+ }
60
+ readAttribute(context, attributeId) {
61
+ node_opcua_assert_1.assert(!context || context instanceof source_1.SessionContext);
62
+ const options = {};
63
+ switch (attributeId) {
64
+ case node_opcua_data_model_2.AttributeIds.IsAbstract:
65
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
66
+ options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.isAbstract };
67
+ break;
68
+ case node_opcua_data_model_2.AttributeIds.DataTypeDefinition:
69
+ const _definition = this._getDefinition();
70
+ if (_definition !== null) {
71
+ options.value = { dataType: node_opcua_variant_1.DataType.ExtensionObject, value: _definition };
72
+ }
73
+ else {
74
+ options.statusCode = node_opcua_status_code_1.StatusCodes.BadAttributeIdInvalid;
75
+ }
76
+ break;
77
+ default:
78
+ return super.readAttribute(context, attributeId);
79
+ }
80
+ return new node_opcua_data_value_1.DataValue(options);
81
+ }
82
+ getEncodingDefinition(encoding_name) {
83
+ const encodingNode = this.getEncodingNode(encoding_name);
84
+ if (!encodingNode) {
85
+ throw new Error("Cannot find Encoding for " + encoding_name);
86
+ }
87
+ const indexRange = new node_opcua_numeric_range_1.NumericRange();
88
+ const descriptionNodeRef = encodingNode.findReferences("HasDescription")[0];
89
+ const descriptionNode = this.addressSpace.findNode(descriptionNodeRef.nodeId);
90
+ if (!descriptionNode) {
91
+ return null;
92
+ }
93
+ const dataValue = descriptionNode.readValue(source_1.SessionContext.defaultContext, indexRange);
94
+ return dataValue.value.value.toString() || null;
95
+ }
96
+ getEncodingNode(encoding_name) {
97
+ const _cache = base_node_1.BaseNode._getCache(this);
98
+ const key = encoding_name + "Node";
99
+ if (_cache[key] === undefined) {
100
+ node_opcua_assert_1.assert(encoding_name === "Default Binary" || encoding_name === "Default XML" || encoding_name === "Default JSON");
101
+ // could be binary or xml
102
+ const refs = this.findReferences("HasEncoding", true);
103
+ const addressSpace = this.addressSpace;
104
+ const encoding = refs
105
+ .map((ref) => addressSpace.findNode(ref.nodeId))
106
+ .filter((obj) => obj !== null)
107
+ .filter((obj) => obj.browseName.toString() === encoding_name);
108
+ const node = encoding.length === 0 ? null : encoding[0];
109
+ _cache[key] = node;
110
+ }
111
+ return _cache[key];
112
+ }
113
+ getEncodingNodeId(encoding_name) {
114
+ const _cache = base_node_1.BaseNode._getCache(this);
115
+ const key = encoding_name + "NodeId";
116
+ if (_cache[key] === undefined) {
117
+ const encoding = this.getEncodingNode(encoding_name);
118
+ if (encoding) {
119
+ const namespaceUri = this.addressSpace.getNamespaceUri(encoding.nodeId.namespace);
120
+ _cache[key] = node_opcua_nodeid_1.ExpandedNodeId.fromNodeId(encoding.nodeId, namespaceUri);
121
+ }
122
+ else {
123
+ _cache[key] = null;
124
+ }
125
+ }
126
+ return _cache[key];
127
+ }
128
+ /**
129
+ * returns the encoding of this node's
130
+ * TODO objects have 2 encodings : XML and Binaries
131
+ */
132
+ get binaryEncoding() {
133
+ return this.getEncodingNode("Default Binary");
134
+ }
135
+ get binaryEncodingDefinition() {
136
+ return this.getEncodingDefinition("Default Binary");
137
+ }
138
+ get binaryEncodingNodeId() {
139
+ return this.getEncodingNodeId("Default Binary");
140
+ }
141
+ get xmlEncoding() {
142
+ return this.getEncodingNode("Default XML");
143
+ }
144
+ get xmlEncodingNodeId() {
145
+ return this.getEncodingNodeId("Default XML");
146
+ }
147
+ get xmlEncodingDefinition() {
148
+ return this.getEncodingDefinition("Default XML");
149
+ }
150
+ get jsonEncoding() {
151
+ return this.getEncodingNode("Default JSON");
152
+ }
153
+ get jsonEncodingNodeId() {
154
+ return this.getEncodingNodeId("Default JSON");
155
+ }
156
+ // public get jsonEncodingDefinition(): string | null {
157
+ // return this.getEncodingDefinition("Default JSON");
158
+ // }
159
+ _getEnumerationInfo() {
160
+ let definition = [];
161
+ if (this.enumStrings) {
162
+ const enumStrings = this.enumStrings.readValue().value.value;
163
+ node_opcua_assert_1.assert(Array.isArray(enumStrings));
164
+ definition = enumStrings.map((e, index) => {
165
+ return {
166
+ name: e.text,
167
+ value: index
168
+ };
169
+ });
170
+ }
171
+ else if (this.enumValues) {
172
+ node_opcua_assert_1.assert(this.enumValues, "must have a enumValues property");
173
+ const enumValues = this.enumValues.readValue().value.value;
174
+ node_opcua_assert_1.assert(Array.isArray(enumValues));
175
+ definition = enumValues.map((e) => {
176
+ return {
177
+ name: e.displayName.text,
178
+ value: e.value[1]
179
+ };
180
+ });
181
+ }
182
+ // construct nameIndex and valueIndex
183
+ const indexes = {
184
+ nameIndex: {},
185
+ valueIndex: {}
186
+ };
187
+ for (const e of definition) {
188
+ indexes.nameIndex[e.name] = e;
189
+ indexes.valueIndex[e.value] = e;
190
+ }
191
+ return indexes;
192
+ }
193
+ _getDefinition() {
194
+ if (!this.$definition) {
195
+ const structure = this.addressSpace.findDataType("Structure");
196
+ if (!structure) {
197
+ return null;
198
+ }
199
+ if (this.isSupertypeOf(structure)) {
200
+ // <Definition> tag was missing in XML file as it was empty
201
+ this.$definition = new node_opcua_types_1.StructureDefinition({});
202
+ }
203
+ }
204
+ // from OPC Unified Architecture, Part 6 86 Release 1.04
205
+ // A DataTypeDefinition defines an abstract representation of a UADataType that can be used by
206
+ // design tools to automatically create serialization code. The fields in the DataTypeDefinition type
207
+ // are defined in Table F.12.
208
+ const _definition = this.$definition || null;
209
+ if (_definition && _definition instanceof node_opcua_types_1.StructureDefinition && this.binaryEncodingNodeId) {
210
+ _definition.defaultEncodingId = this.binaryEncodingNodeId;
211
+ const subtype = this.subtypeOf;
212
+ if (subtype) {
213
+ _definition.baseDataType = subtype;
214
+ }
215
+ }
216
+ return _definition;
217
+ }
218
+ install_extra_properties() {
219
+ //
220
+ }
221
+ toString() {
222
+ const options = new base_node_private_1.ToStringBuilder();
223
+ DataType_toString.call(this, options);
224
+ return options.toString();
225
+ }
226
+ }
227
+ exports.UADataType = UADataType;
228
+ function dataTypeDefinition_toString(options) {
229
+ const definition = this._getDefinition();
230
+ if (!definition) {
231
+ return;
232
+ }
233
+ const output = definition.toString();
234
+ options.add(options.padding + chalk.yellow(" Definition : "));
235
+ for (const str of output.split("\n")) {
236
+ options.add(options.padding + chalk.yellow(" : " + str));
237
+ }
238
+ }
239
+ function DataType_toString(options) {
240
+ base_node_private_1.BaseNode_toString.call(this, options);
241
+ options.add(options.padding + chalk.yellow(" isAbstract : " + this.isAbstract));
242
+ options.add(options.padding + chalk.yellow(" definitionName : " + this.definitionName));
243
+ options.add(options.padding +
244
+ chalk.yellow(" binaryEncodingNodeId: ") +
245
+ (this.binaryEncodingNodeId ? this.binaryEncodingNodeId.toString() : "<none>"));
246
+ options.add(options.padding +
247
+ chalk.yellow(" xmlEncodingNodeId : ") +
248
+ (this.xmlEncodingNodeId ? this.xmlEncodingNodeId.toString() : "<none>"));
249
+ if (this.subtypeOfObj) {
250
+ options.add(options.padding +
251
+ chalk.yellow(" subtypeOfObj : ") +
252
+ (this.subtypeOfObj ? this.subtypeOfObj.browseName.toString() : ""));
253
+ }
254
+ // references
255
+ base_node_private_1.BaseNode_References_toString.call(this, options);
256
+ dataTypeDefinition_toString.call(this, options);
257
+ }
258
+ exports.DataType_toString = DataType_toString;
259
+ //# sourceMappingURL=ua_data_type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ua_data_type.js","sourceRoot":"","sources":["../../src/ua_data_type.ts"],"names":[],"mappings":"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"}